2011-04-22 6 views
3

here과 같이 git 스키마를 현재 설정 중입니다.Git 사후 업데이트 후크는 풀 수 없습니다.

해당 서버에서 copSSH 및 msysGit을 사용하여 Windows Server 2008 R2를 실행하고 있습니다.

그 jist는 git repos : 한 벌의 repo가 ​​푸시 된 다음 다른 라이브가 아닌 다른 repo에 저장됩니다.

참고로
echo 
echo "**** Pushing data to Live Server." 
echo 

cd /cygdrive/c/Repositories/Live || exit 
unset GIT_DIR 
git pull hub master 

exec git-update-server-info 

: 이름에서 알 수 있듯이 라이브가 아닌 맨손으로 REPO이다, 살에 밀려

의 repo는 다음과 같이 보이는 업데이트 후 후크가 포함되어 있습니다. Live.git는 위의 훅을 포함하고 푸시 된 베어 레포입니다. 나는/cygdrive /가 없으면 repo에 cd 할 수 없었습니다. 진단 푸시에서 $ pwd를 울려서 발견되었습니다.

끌어 오기가 라이브 저장소에서 성공적으로 호출되면 문제는 해당 업데이트에서 Live.git 저장소를 찾는 데 있습니다.

remote: Pushing data to Live Server.ommand not foundnd not foundle or directory 
remote: : not foundpdate-server-infoand not foundand not founddommand not found 

허브 /c/Repositories/Live.git 및/cygdrive/C/저장소/라이브 모두 같은 지역 자식 쉘을 통해 원격 저장소로 정의된다 : 내가 좋아하는 읽기 "이상한 공"오류를 얻을. 자식.

"허브"를 직접 폴더 경로로 바꿨으며 "../Live.git"와 같은 시도도 시도했습니다 시도한 모든 것이 git 업데이트 실패로 끝났습니다. 업데이트 명령에서 Live.git에 대한 시도 된 모든 경로는 작업 디렉토리가 라이브 저장소로 설정되고 작업되었습니다.

리드 또는 도움에 감사드립니다.


하는 업데이트 : 내 스키마, 그것은 이유를 설명하는 공간의 불필요한 시간이 걸릴 것이라고 나는 허브 저장소에서 끌어해야하지만 그런 경우입니다.

더 많은 테스트를 수행하고 내 문제에 대해 자세히 알아 냈습니다. SSH를 통해 내 저장소로 푸시하면 프라임 허브가 성공적으로 마운트되고 pull 명령이 실행됩니다. 해당 풀 명령을 허브 저장소를 해결하려고 할 때 (위의 자세히 설명한 것처럼) 실패하지만 폴더를 볼 수있는 후크 일련의 명령을 사용하여 밝혀졌습니다. 나는 ls를/cygdrive/c /에서 실행하고 usr이라는 폴더 만 볼 수있다. 필자는 copSSH 사용자가 전체 파일 시스템에 대한 완전한 관리 권한을 가지도록했습니다 (테스트 및 디버깅 목적으로 만).

내 경로가/cygdrive/경로를 사용해야하는 이유를 모르겠다. copSSH에 패키지 된 cygwin 외에 cygwin도 설치되어 있지 않다. 이것은 구성에 문제가 있음을 나타 냅니까? 또는 copSSH + msysGit 설정에 대해 정상입니까? ls가 리포지토리 폴더를 나열하지 않더라도 기본 저장소를 후크에서 마운트 할 수 있습니까?

답변

1

당신은 또한 Cygwin에서 당신은 시도하지 말아야

+0

cygwin이 설치되어 있지 않지만 copSSH에 cygwin이 포함되어 있습니다. 자세한 내용은 업데이트 된 질문을 참조하십시오. cygwin을 사용하지 않는 Windows ssh 서버가 있습니까? 이것은 해결책 일 수 있습니다. –

+0

@James : 기본'PATH' ('copSSH'와 함께)가 문제인지 확인하기 위해'DOS' 세션에서 후킹 명령을 시도해 볼 것을 권합니다. 그런 다음 동일한 오류 ('/ cygdrive '를 사용해야 함)가 발생하면'DOS 세션'에서'msysgit '과 기본 Windows 경로 만 포함하도록'PATH'를 재정의하십시오. 해당 세션에서 명령이 실행되면 동일한 'PATH'를 설정하십시오. – VonC

+0

나는 정확히 위와 모든 경로가 올바르게 해결되었습니다. 고맙습니다! –

1

(이 경우 msysgit의와 Mingw와 Cygwin에서의 조합이 문제의 원인이 될 수 있음) 설치하지 않는 한 당신은, msysgit와 경로에 /cygdrive을 필요가 없습니다 레보 후크에서 git pull을 실행하십시오. 어떤 사람들은 그것이 잘 작동한다고 말하지만, 그렇지 못하며, 다양한 요인들로 인해 행동이 예측 불가능할 수 있습니다.

대신이 방법을 사용해야합니다.http://toroid.org/ams/git-website-howto

이 방법은 디렉토리를 업데이트하기 위해 git checkout을 호출하는 베어 리포에서 수신 후 후크를 사용합니다.

+0

+1 'git checkout' 메소드의 경우 – manojlds

관련 문제