2013-03-05 2 views
4

내 클라우드에 개인 git repos가 있습니다. 내가 ownClouds에게 WebDAV를 URL에 액세스하여이 우분투 기계 및 윈도우 PC에서 그것을 복제 할 수 있습니다 : http://myserver.a/remote.php/webdav/repos/repo.gitGit이 ownCloud의 webdav 인터페이스에서 Repo를 복제하지 못했습니다.

최근 내가 자식 버전 1.8.1.5과 아치 리눅스를 설치하고이 오류 메시지와 함께 실패합니다 치명적인 : http://myserver.a/remote.php/webdav/repos/repo.git/info/refs?service=git-upload-pack 찾을 수 없습니다 : 않았다 당신은 서버에서 git update-server-info를 실행 하는가?

업데이트 후크를 추가했는데 결국 다른 컴퓨터에서도 작동합니다. 서버가 error.log에 404가 표시되면 info/refs? service ...

우분투 git 1.7은 서버와 동일한 URL을 요청합니다. 그러나 오류 코드 404를 수신하면 .../info/refs HTTP/1.1을 요청하고 코드 200과 함께 성공합니다.

왜 새로운 자식이 실패하고 어떻게 해결할 수 있습니까?

+0

문제를 해결 했습니까? 나는 지금 똑같은 것을 가지고있다. – mincos

+0

아니요, 불행히도 저는하지 않았습니다. 대신 아파치 웹 서버가있는 표준 WebDAV 폴더를 통해 나의 git repos를 호스팅합니다. – namnor

답변

4

전체 ?service=... 것은 1.6.6에서 소개 된 git의 스마트 HTTP 지원입니다. 전통적인 HTTP 지원보다 훨씬 효율적이지만 웹 서버에서 실행될 특별한 CGI 바이너리가 필요하며 이 아니고 WebDAV에서이 작동하지 않습니다.

IMO, 손상되지 않은 WebDAV 구현에서는 무시해야하지만 분명히 ownCloud는 파일 이름이 파일의 일부라고 생각하므로 오류가 발생합니다. 이것에 대해 클라우드 개발자들과 이야기하는 것이 합리적 일 수 있습니다.

이전 버전에서 git은 해당 접미어가없는 URL로 되돌아 갔지만 자체 문제가있었습니다. 따라서 두 번째 요청은 1.8.0에서 제거되었으며 스마트 HTTP를 끄고 이전 URL을 직접 사용하여 문제를 해결할 수있는 새로운 옵션이 도입되었습니다. 그것은 예를 들어, 다음과 같이 작동

GIT_SMART_HTTP=0 git fetch 

스마트 HTTP를 사용 (하지만 Github에서 다른 모든 제정신 호스팅 사이트에 대한 작업을한다는 것을 인식하고, 푸시가없이 작동하지 않습니다) 싶지 않을 경우 쉘 프로파일에서 해당 환경 변수를 내보낼 수 있습니다.

https://git.kernel.org/cgit/git/git.git/commit/?id=02572c2e3afcc200936260f48863447726212a7c의 변경 사항에 대한 세부 정보.

+0

한편 나는이 변화에 대해 들었다. 그러나 당신은 설명이 정말로 도움이된다, 고마워! – namnor

관련 문제