SVN post 提交挂钩不工作?
SVN post commit hook not working?
在我的本地框上导航到 TortoiseSVN,打开设置并 'Hook Scripts'。单击 'Add...' 并输入以下值
挂钩类型
post_commit_hook
工作副本路径
https:\svn.internal.net\svn\Release_Customer
要执行的命令行
C:\postCommitHook.bat
postCommitHook.bat文件内容为
"C:\Program Files\TortoiseSVN\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO OK
echo "Commit Comments are Required" >&2
exit 1
:OK
exit 0
但是当我从我的本地框代码(指向 https:\svn.internal.net\svn\Release_Customer)提交而没有任何评论时,我仍然能够提交。为什么我的
postCommitHook.bat 正在限制它?
基本上我尝试将限制添加到 svn repo(https:\svn.internal.net\svn\Release_Customer
),因为批处理脚本位于本地框上。可以吗?
您有两个问题:
- 如果你想阻止提交发生,它必须在 pre-commit 钩子脚本中发生。 post-commit 挂钩在 成功提交后执行 ,这对您的用例没有帮助。
- 您配置的挂钩仅在您的计算机本地,并且用于通过 TortoiseSVN 执行的提交。要在存储库中安装挂钩脚本,您需要对 SVN 服务器本身的文件系统具有适当级别的访问权限,以将其放置在存储库数据库本身的
hooks
目录中。 More info in the manual
在我的本地框上导航到 TortoiseSVN,打开设置并 'Hook Scripts'。单击 'Add...' 并输入以下值
挂钩类型 post_commit_hook
工作副本路径 https:\svn.internal.net\svn\Release_Customer
要执行的命令行 C:\postCommitHook.bat
postCommitHook.bat文件内容为
"C:\Program Files\TortoiseSVN\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO OK
echo "Commit Comments are Required" >&2
exit 1
:OK
exit 0
但是当我从我的本地框代码(指向 https:\svn.internal.net\svn\Release_Customer)提交而没有任何评论时,我仍然能够提交。为什么我的 postCommitHook.bat 正在限制它?
基本上我尝试将限制添加到 svn repo(https:\svn.internal.net\svn\Release_Customer
),因为批处理脚本位于本地框上。可以吗?
您有两个问题:
- 如果你想阻止提交发生,它必须在 pre-commit 钩子脚本中发生。 post-commit 挂钩在 成功提交后执行 ,这对您的用例没有帮助。
- 您配置的挂钩仅在您的计算机本地,并且用于通过 TortoiseSVN 执行的提交。要在存储库中安装挂钩脚本,您需要对 SVN 服务器本身的文件系统具有适当级别的访问权限,以将其放置在存储库数据库本身的
hooks
目录中。 More info in the manual