繁体   English   中英

SVN Post Commit Hook Batch Windows

[英]SVN Post Commit Hook Batch Windows

我有一台运行Visual SVN Server的Windows Server来存储我们的存储库。 该服务器上还有我们的测试副本。

我正在尝试设置一个简单的SVN post-commit钩子,以便每次我提交时自动更新该测试副本

在后提交钩子中的Visual SVN中,我设置了这样的

"C:\Program Files (x86)\VisualSVN Server\bin\updatescripts.bat" D:\inetpub\TESTCOPY

然后该批处理文件有一个像这样的简单更新

PATH=%PATH%;"C:\Program Files (x86)\VisualSVN Server\bin\"
svn update %1

如果我通过双击它或从命令行运行服务器中的批处理文件工作正常。 当从我的笔记本电脑上提交某些内容时,它会冻结并且不会给我任何错误并锁定测试副本,因此我需要进入并进行清理。

Visual SVN服务作为网络服务运行,并且此aacount可以完全访问服务器上的bin文件夹和测试副本。

任何想法如何设置一个简单的svn更新post post hook任何人?

谢谢联邦

我遇到了类似的问题,结果证明SVN喜欢使用正斜杠而不是反斜杠的路径。

尝试这个:

set MYPATH=%1

:: Transform backslashes to forward slashes
set MYPATH=%MYPATH:^\=/%

svn update %MYPATH%

您正在运行svn update命令。 您正在尝试更新的工作副本到底是什么?

传递的参数是Repository的路径 这不是指向工作目录,而是指向包含Subversion主存储库的目录。 这是存储post commit钩子的目录。

Subversion挂钩无法访问用户的工作目录,因此您无法操纵用户的文件。 钩子脚本通常应该使用svnlook而不是svn 通过这样做,您可以防止自己陷入任何麻烦。

如果您知道位置,则可以在服务器上更新Subversion工作副本:

PATH=%PATH%;"C:\Program Files (x86)\VisualSVN Server\bin\"
set SVN_WORK_DIR=C:\SVN\workdir"
svn update %SVN_WORK_DIR%

但是,我不推荐这个,因为它绑定了Subversion。 执行提交的用户必须等到更新完成,然后Subversion才会将提示控件返回给用户。

在尝试了一百万种不同的东西后,这对我有用......

我把它放在我的post-commit钩子“C:\\ Program Files \\ VisualSVN Server \\ bin \\ svn.exe”更新“C:\\ my path \\”,其中我的路径是要更新的工作副本的路径

此外,我不得不将服务更改为本地系统运行

真的不是你想要那样做的方式。 你应该做的是使用像詹金斯这样的东西来观察你的存储库。 Jenkins可以监视您的存储库,它可以在更改时更新,更新测试副本,启动构建,运行自动化测试等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM