版本控制下的Svn钩子脚本
在svn版本控制下的Svn钩子脚本,svn,Svn,在svnrepository/hooks目录中,我有一个pre-commit脚本。现在,在同一个目录中,我还有由预提交触发的script.py 在上述场景中,myscript.py不受版本控制。如果我不能信任我的用户,这是有道理的。但是,在我的情况下,我可以信任我的用户,出于维护目的,我希望将script.py置于版本控制之下(相同的回购协议) 问题是:如何触发我的脚本:trunk/tools/script.pyfromrepository/hooks/pre-commitscript?我看到了
repository/hooks
目录中,我有一个pre-commit
脚本。现在,在同一个目录中,我还有由预提交触发的script.py
在上述场景中,myscript.py
不受版本控制。如果我不能信任我的用户,这是有道理的。但是,在我的情况下,我可以信任我的用户,出于维护目的,我希望将script.py
置于版本控制之下(相同的回购协议)
问题是:如何触发我的脚本:trunk/tools/script.py
fromrepository/hooks/pre-commit
script?我看到了两种可能的解决方案(尽管并不理想):
a) 签出trunk/tools
到repository/hooks
并编写小蹦床:
(不是真正的代码,只是想法!)
b) Cat trunk/tools/script.py到临时文件并执行它。(同样,仅限于想法,我不检查参数是否正确传递…)
另外,您没有指定操作系统,所以我假设它是Windows。好吧,我一直在想类似于第二个解决方案的东西,但它仍然是一个丑陋的黑客。现在,让我们等待更多的答案。无论如何谢谢你,顺便说一句。我用的是linux。
svn up tools
python -file tools/script.py %1 %2 %2
exit /b %ERRORLEVEL%
set TMPFILE=%TEMP%\%RANDOM%.py
svnlook cat %1 -r %2 trunk/tools/script.py > %TMPFILE%
python -file %TMPFILE% %1 %2 %2
exit /b %ERRORLEVEL%