2015-02-24 29 views
0

本地预提交是否仅挂钩了TortoiseSVN的函数?看来svn命令行客户端不支持它们。如果答案是肯定的,是否有任何方法来编写脚本安装?我的情况是,有很多提交者,可能有两三百个。自动为Subversion安装本地提交钩子

我们有几个发布经理,每个发布经理都有多个虚拟机,每个虚拟机上签出多个分支。我希望有一个脚本,我们可以在每个虚拟机上放置并运行,而不是通过手动添加(通过乌龟GUI)每个工作副本每个虚拟机每个发行管理器一个钩子。在服务器端添加它会导致服务器的大量不必要的工作和减速。我们都在窗户上。谢谢!

+0

你在寻找什么样的钩子,为什么它不适合服务器? – Ben 2015-02-25 05:55:20

+0

@Ben我们有很多开发人员和很少的发布经理。发布管理器有时在合并期间破坏XML文件,所以我想验证我们的XML文件在使用预先提交钩子合并后没有中断。强制每个人通过服务器端的钩子来做这个验证将是不必要的时间消耗。 – sirdank 2015-02-25 13:18:13

+0

开发人员是否与发布经理一样承诺同一分支?如果没有,您可以将挂钩脚本设置为仅在发布分支上发生提交时生效。或者,您可以将挂钩脚本设置为仅在mergeinfo发生更改时生效(表示发生了合并)。这可能比需要某种客户端配置更能抵抗错误。 – Ben 2015-02-25 16:18:49

回答

1

是的,客户端挂钩是TortoiseSVN-only feature(这里显示的设置对用户的TortoiseSVN客户端是全局的)。您可以通过tsvn:*hookscript properties针对特定项目对其进行配置。

对于分发,您可能希望将钩子脚本保留在中央文件共享中,并通过这些属性中的UNC路径引用它们。这样,每个人应该始终指向相同的挂钩脚本。您需要确保您的挂钩不依赖于工作副本或脚本可能依赖的其他工具的特定路径。

但是,您应该而不是完全依赖于客户端挂钩脚本。您无法控制用户可以使用哪个或哪些客户端,如果他们不使用TortoiseSVN,则该功能将不存在。

+1

此外,本地用户可以更改本地挂钩。我们在ClearCase中遇到了这个问题,用户只需编写自己的代码就可以绕过_hook_。 – 2015-02-24 19:21:30