提交后挂钩不执行

时间:2014-04-02 07:59:18

标签: svn svn-hooks post-commit-hook

问题

我正在使用SVN进行版本控制 我想使用post-commit钩子来执行脚本,但由于某种原因它不会触发。

任何想法可能是什么原因?


其他信息

  • 我的服务器是Windows Server 2012
  • 我正在使用VisualSVN Server 2.7.4
  • 我已将post-commit.tmpl文件夹中的hooks文件更改为post-commit.bat
  • 我正在使用http协议来访问服务器。

到目前为止我尝试了什么

  • 我修改了post-commit.bat文件以在c:\中创建一个空文件,用于验证挂钩是否已执行(它没有...)
  • 该脚本可以从命令行完美运行。
  • 我将协议更改为file://(并共享了回购的文件夹) - 没有好处......

解决方案

正如@bahrep和@Dialecticus指出的那样,在我的身边创建根c:上的测试文件并不聪明。在具有每个人的完全权限的子文件夹中创建它之后,创建了文件,例如,毕竟,钩子被触发了。

2 个答案:

答案 0 :(得分:1)

尝试在C:\ Temp文件夹中创建空文件。写入C的根:需要您可能拥有的特权,但运行SVN服务器的帐户可能没有。

另外,尝试其他测试,以防万一。使用唯一的代码行"退出0"使pre-revprop-change.bat挂钩,并尝试更改某些修订版的日志消息,甚至是作者,看看是否有效。

答案 1 :(得分:1)

  1. 正如@JyotsnaSaroha已经提到的,Subversion挂钩是在运行VisualSVN Server服务的帐户下执行的。默认情况下,该服务在Network Service帐户下运行,因此该帐户必须具有您需要操作的目录/文件的访问权限。

  2. 您不需要编辑/重命名*.tmpl挂钩文件,只需在VisualSVN Server Manager控制台中使用VisualSVN Server的内置挂钩编辑器。

  3. 我强烈反对使用post-commit hook在C:\中创建任何内容。使用其他目录,例如C:\myhookdirectory