2011-02-14 6 views
2

이전에 Linux 서버에 있던 SVN 사전 커밋 훅이 있습니다. 지금은 Windows (Server 2003) 서버로 이동하려고합니다.Windows 배치 파일에 SVN Python 후크 래핑

이 훅은 Python으로 작성되었으며 리눅스에서는 정상적으로 #!/usr/bin/env python 줄이 사용되었습니다. 그러나 Windows는 그런 식으로 작동하지 않으며 배치 파일 (또는 다른 형식이지만 여전히 Python이 아님)이되어야합니다.

중요한 것은 스크립트에 인수가 전달되고 종료 코드가 호출 프로세스 (SVN 서버)로 반환되어 커밋을 허용할지 여부를 알 수 있도록하는 것입니다. 나는 아무것도에 대한 .bat 파일 구문 옆 알고 있지만, 나는이 같은 트릭 할 것이라고 생각 : 바로이 파이썬 스크립트를 포장하는 가장 간단한 방법은 생각에

C:\Python26\python.exe pre-commit.py %1 %2 

내가 오전? 자동으로 스크립트의 종료 코드를 반환합니까?

답변

2

내 자신의 질문에 대답하려면 : 거의 작동합니다. 종료 코드는 ERRORLEVEL 변수를 통해 감지되지만 빈 환경으로 인해 스크립트의 경로를 완전히 지정해야합니다. 다행히 첫 번째 인수가 저장소의 위치를 ​​포함, 그래서 그냥 :

C:\Python26\python.exe %1\hooks\pre-commit.py %1 %2 
+0

내가 볼 항상 커밋 것이 추측하고 http://stackoverflow.com/questions/10168108/cant-fail-svn-pre- 커밋 - 스크립트 -와 - 윈도우 - 서버, 당신은 몇 가지 배치 파일 오류 처리 수업이 필요해! –

+1

@KalpeshSoni - 아니, 결국 작동합니다. 링크 된 질문에 배치 파일이 아니라 Python 스크립트에 오류가 있습니다. – detly

관련 문제