2014-10-14 3 views
1

서브 버전 (SVN)을 사용하여 두 개의 저장소를 동기화하려고하고 있으며 원본 및 미러 서버 모두에서 visualSVN을 사용하고 있습니다.두 저장소를 자동으로 동기화하기 위해 커밋 후 후크를 작성하는 방법

수동으로, 즉 명령 줄을 통해 동기화 할 수 있지만 마스터 리포지토리의 포스트 커밋 훅을 사용하여 자동으로 트리거되도록하고 싶습니다.

난에 다음 코드를 쓰고 있어요 자동으로 미러 저장소 (슬레이브)와 동기화 소스 저장소 (마스터)의 후크 게시물을 커밋 :

svnsync --non-interactive --sync-username syncuser --sync-password syncuserpassword sync mirror-repository-url 

을하지만 난 소스 저장소에 일부 파일을 체크 할 때 (마스터)는 다음과 같은 오류를 보여줍니다

**post-commit hook failed(exit code 1) with output: 

svnsync:E230001:Unable to connect to a repository at URL 'mirror-repository-url' svnsync:E230001:Server SSL certificate verification failed; Certificate issued for a different hostname; issuer is not trusted** 

하지만 난 SVN (마스터)에 있지만 미러 저장소 (슬레이브)에 소스 저장소에 파일을 얻고, 그래서 수동으로 작성된 동일한 코드를 제공하는 시도 커맨드를 통한 마스터 저장소의 포스트 커밋 훅 소스 저장소 (마스터)에 추가 된 새로운 개정과 동기화 된 미러 저장소 (슬레이브)

포스트 커밋 후크를 사용하여 자동으로 동기화하는 동안 어떻게이 문제를 극복합니까? 나는 어디로 잘못 갔는가? 이 오류를 극복 할 수있는 아이디어를 제안 해 주시겠습니까?

답변

1

so i tried manually giving the same code which was written in post-commit hook of master repository through command line of the mirror server

먼저 잘못된 서버에서 테스트하고 있습니다. 마스터 서버에서 커밋 후 후크 실행에 문제가 있으면 마스터 서버에서 명령을 테스트해야합니다.

일반적으로 명령 줄과 커밋 후크 컨텍스트간에 동작이 다른 경우 환경 변수가 설정되어 있지 않은 것과 관련이 있습니다. SVN book section on hooks에서 :

For security reasons, the Subversion repository executes hook programs with an empty environment—that is, no environment variables are set at all, not even $PATH (or %PATH%, under Windows). Because of this, many administrators are baffled when their hook program runs fine by hand, but doesn't work when run by Subversion. Be sure to explicitly set any necessary environment variables in your hook program and/or use absolute paths to programs.

+0

환경 변수를 만든 후 시도했지만 여전히 동일한 오류가 표시됩니다. 포스트 커밋 훅 (post-commit hook)에서 환경 변수를 작성하여 잘 작동하도록하는 방법을 보여주십시오. – satish

+0

@satish : 먼저 명령 줄과 커밋 후 후크간에 동작이 다른지 확인해야합니다. 마스터 서버의 명령 줄에 명령을 입력하면 어떻게됩니까? –

+0

마스터 서버의 명령 줄에서 명령을 입력하면 마스터 저장소의 보류중인 개정판을 종속 저장소와 동기화합니다. 즉, 복사 된 보류중인 개정판을 미러 저장소에 동기화합니다. – satish

관련 문제