2012-12-05 3 views
1

하나의 포스트 - 수신 후크가 실행하는데 1 분이 걸립니다. 이 후크를 실행하는 동안 다른 사람이 누를 수 있어야합니다.어떻게 자식 수신을 방지하기 위해

내가 할 수있는 방법이 있습니까? 또는 클라이언트에서 푸시 할 수 없도록 원격 저장소에있는 git을 어떻게 구성합니까?

답변

3

직접 해보세요 : 수신 후크에 lockfile을 만들고 완료되면 삭제하십시오. 해당 파일이있는 경우 차단하는 pre-receive hook을 추가하십시오.

이것은 경쟁 조건을 허용합니다. 두 클라이언트가 동시에 푸시를 시작하면 둘 다 수신 후크에 도달합니다. 왜이 배타적 액세스가 필요한거야?

+0

실제로 솔루션을 선호합니다. 수신 전 후크에서 명시 적 오류 메시지를 설정할 수 있습니다. +1 – VonC

0

거부 ​​할 이있는 것 같습니다. 모두 푸시. 사용자가 ssh를 통해 자식의 repos에 액세스하는 경우,

  • 일시적으로 ~/스푸핑/authorized_keys에 이동 : 트릭 당신을 잎

    는 액세스 메커니즘을 "휴식"합니다.

  • 사용자가 https 주소를 사용하는 경우 해당 트랜잭션에 사용 된 <git>/libexec/git-core/git-http-backend 실행 파일을 이동하십시오.

두 경우 모두 클라이언트 측에서 오류 메시지가 표시되지만, 이러한 파일을 이동하는 동안 아무런 푸시 표시가 나타나지 않습니다.

관련 문제