Subversion 후크 구현 및 테스트

Subversion 후크 구현 및 테스트

배경
Subversion에 대한 여러 커밋 후크를 구현하려고 합니다. 나는 간단한 테스트 후크를 작동시키기 위해 많은 연구를 해왔지만 운이 없었습니다.

참고로 나는 다음 링크의 방법을 살펴보고 따라한 다음 결합하려고 시도했습니다.
1.디렉토리 구성을 위한 Subversion 매뉴얼
2.서버 측 후크 스크립트에 대한 Tortoisevn 매뉴얼
삼.Subversion 매뉴얼에 대한 링크가 포함된 서버 측 후크에 대한 설명
4.사전 커밋 후크에 대한 단어 정렬 튜토리얼
5.커밋 후크 문제에 대한 서버 오류 답변

내가 참조하고 사용한 다른 사이트도 많이 있지만 여전히 작동하도록 커밋 후크를 얻을 수 없습니다.

내 환경
내 컴퓨터에서 RHEL6(Cent OS)을 실행 중입니다.
전복은 감독자의 허가 없이는 직접 액세스할 수 없는 원격 시스템에 있습니다.
원격 시스템이 Subversion 1.6을 실행 중입니다.

내 저장소의 현재 구조는 다음과 같습니다.

test-for-svn-hooks
|-branches
|-hooks
| +-pre-commit
|-tags
+-trunk  

파일 사전 커밋에는 일시적으로 권한이 777. 모든 디렉토리의 권한은 으로 설정되어 있습니다 775.

다음은 커밋 후크를 테스트하기 위해 만든 샘플 스크립트입니다.

#!/usr/bin/env bash

echo "THOU SHALL NOT PASS" 1>&2

exit 1

사전 커밋 후크가 제대로 작동하는지 확인하기 위해 가능한 모든 것을 확인하고 테스트했습니다. 작동하는지 확인하기 위해 더 확인해야 할 것이 무엇인지 모르겠습니다. 내가 원하는 것은 무엇이든 커밋할 수 있으며 화면에 메시지가 출력되지 않습니다.

질문
1. Hook 구현 시 제가 놓쳤거나 간과한 것이 있나요?
2. 이런 방식으로 후크를 구현하는 경우 Tortoisesvn에서 동일한 후크를 다시 구현하는 것에 대해 걱정해야 합니까?

어떤 피드백 및/또는 제안이라도 대단히 감사하겠습니다.

답변1

  1. 후크를 구현할 때 제가 놓쳤거나 간과한 것이 있나요?

권한 777을 사용하지 마십시오. 때로는 이것이 실제로 비생산적일 수 있습니다. 일부 도구는 이러한 의심스러운 권한으로 작동하지 않을 수 있습니다. 귀하의 경우 이 설정을 사용하면 문제가 되지 않을 것입니다. 하지만 하지 마세요. 755로 바꿔주세요.

또 다른 온전성 검사는 서버에서 직접 후크 스크립트를 실행하는 것입니다.

/path/to/test-for-svn-hooks/hooks/pre-commit

스크립트에 더 의미 있는 콘텐츠가 있으면 적절한 매개변수도 사용하여 테스트해야 합니다. 예를 들면 다음과 같습니다.

/path/to/test-for-svn-hooks/hooks/pre-commit /path/to/test-for-svn-hooks TXN

그런 다음 서버 자체에서 체크아웃을 사용하여 테스트합니다. 예를 들면 다음과 같습니다.

svn co /path/to/test-for-svn-hooks /tmp/test1
cd /tmp/test1
date > date.txt
svn add date.txt
svn ci -m 'added some junk'

게시물에 작성한 내용에 따르면 다음 단계가 효과적일 것입니다. 테스트가 실패하는 조건에 대해 자세히 알지 못합니다. 이 지점에 도달할 수 있다면 아마도 테스트에 실패한 이유를 알게 될 것입니다.

  1. 이런 방식으로 후크를 구현하면 Tortoisesvn에서 동일한 후크를 다시 구현하는 것에 대해 걱정해야 합니까?

아니요. 후크는 서버 측에서 정의됩니다. 클라이언트 측에서는 아무것도 할 필요가 없습니다. 모든 클라이언트는 사전 커밋 후크에서 정의한 규칙을 따릅니다.

관련 정보