Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
版本控制下的Svn钩子脚本_Svn - Fatal编程技术网

版本控制下的Svn钩子脚本

版本控制下的Svn钩子脚本,svn,Svn,在svnrepository/hooks目录中,我有一个pre-commit脚本。现在,在同一个目录中,我还有由预提交触发的script.py 在上述场景中,myscript.py不受版本控制。如果我不能信任我的用户,这是有道理的。但是,在我的情况下,我可以信任我的用户,出于维护目的,我希望将script.py置于版本控制之下(相同的回购协议) 问题是:如何触发我的脚本:trunk/tools/script.pyfromrepository/hooks/pre-commitscript?我看到了

在svn
repository/hooks
目录中,我有一个
pre-commit
脚本。现在,在同一个目录中,我还有由
预提交触发的
script.py

在上述场景中,my
script.py
不受版本控制。如果我不能信任我的用户,这是有道理的。但是,在我的情况下,我可以信任我的用户,出于维护目的,我希望将
script.py
置于版本控制之下(相同的回购协议)


问题是:如何触发我的脚本:
trunk/tools/script.py
from
repository/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%