2011-08-23 73 views
1

看起来,更新后的钩子适用于整个机器上的SVN设置,但我期望为每个项目设置单独的钩子。从我所看到的,你在设置中设置钩子,这是全球性的。每个项目SVN post-update钩子?

任何想法,我如何能够实现每个项目的更新后钩子?

+0

你说的是服务器端钩子还是客户端钩子(可能在TortoiseSVN中)? – Otherside

+0

它是客户端 - 当您更新时,我会应用逻辑来查看脚本是否已创建,并且我打开一个exe脚本工具,允许您更新本地数据库。该exe文件存储在每个项目中。 – Savage

回答

1

它的确很简单 - 在你的钩子中放置代码(项目路径的正则表达式),如果它不是你想要钩住的项目,它什么也不做。

如果您需要知道更新的工作副本的存储库路径,请使用svninfo。

1

提交后挂钩的第一个参数是存储库的路径,这意味着如前所述使用正则表达式来筛选出喜欢处理的项目。

0

我刚才遇到了这个,但是相反;我正在将钩子应用到项目存储库,但其中一些是相同的,并且冗余地应用它们似乎效率低下。实际上,在SVN中创建项目的做法并不是很好的做法:每个项目都在根目录中存在一个存储库(根目录不能应用挂钩)

在我的情况中,建立一个中央存储库,其中包含项目树,这意味着我可以将我的钩子应用于Client回购库,并将其级联,以便将其应用于根目录下的所有项目。这变得更加有效,因为我可以将项目分开并应用每个回购类型的钩子而没有冗余。

就你而言,我认为你想要的是另一种方式,所以本质上每个项目都需要是一个存储库,而不仅仅是根存储库的一部分。