SVN post-commit hook使得提交速度非常慢 - 如何修复?

时间:2012-01-06 09:42:56

标签: svn tortoisesvn hook

我在Windows 2008服务器上的存储库中添加了一个post-commit钩子。因此,每次提交某些内容时,我都会转到我的应用程序的文件夹并运行 svn update 。这是有效的,但它非常慢,TortoiseSVN直到后提交钩子完成才完成。我怎样才能让它更快?一种方法可能是不cd到任何应用程序,但只对发生提交的应用程序。我怎么能弄清楚,哪个应用程序得到了提交?一些正则表达式和1美元?我只尝试了一个应用程序,它仍然只需1.5分钟就可以获得一个文件。

由于

2 个答案:

答案 0 :(得分:2)

我会完全解除提交与更新,就像(AFAIK)持续集成服务器那样。让cron在您的应用上每X分钟触发一次更新。这样,提交时间就不会受到影响。

答案 1 :(得分:0)

删除Subversion挂钩并查看Jenkins。 Jenkins是一个连续构建服务器,但它的作用是在Subversion完成提交后运行一个进程。通常,这可以是构建,但它也可以在您的服务器上运行Subversion更新。

詹金斯会记录所有内容,并在出现问题时通过电子邮件,推文,即时消息,甚至traffic light通知您。

很容易看到变化,历史等。另外,它并没有减慢Subversion。

顺便说一下,我建议采用以下过程:

  • 您的服务器正在运行说C:\inetd\www
  • 创建一个名为C:\inetd\www2的新目录,并对该目录执行svn export
  • C:\inetd\www2重命名为C:\inetd\www。您可能需要退回服务器。

这样做是为了确保您的服务器永远不会运行,其目录中的某些文件位于修订版2000,而其他文件位于修订版2001.这样,您的所有更改都会同时完成。另外,你并没有遍布所有.svn个目录(尽管Subversion 1.7客户端已经改进了这一点)。