SVN挂钩不执行异步

时间:2014-08-01 14:42:26

标签: svn batch-file asynchronous visualsvn

在我们的SVN服务器(Windows / VisualSVN服务器)上,我创建了一个Post-Commit脚本来自动更新服务器上的本地工作副本(用于预览)。 Post-Commit脚本包含以下内容:

svn.exe cleanup .....
svn.exe update .....

这很有效。但是,我们有一些更大的存储库,这需要一段时间。我想在提交内容时异步运行此脚本。因此,我已将SVN指令移到外部批处理文件中,并尝试使用CMD / C或Start命令来完成此操作。

start "" "d:\svn\update-repository.bat"

cmd /c "d:\svn\update-repository.bat"

甚至

start cmd /c "d:\svn\update-repository.bat"

不提供异步性能。它仍然保持提交,直到在服务器上更新整个存储库。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为svn服务器运行的命令在完成之前不会完全返回 - 这意味着原始cmd将位于那里,允许您运行其他命令,但是否则等待生成的cmd应该完成。只有这样,"会话" (因为缺少一个更好的词)完成并将控制权返回给Subversion。

我会将您要运行的命令写入文件,然后使用外部生成的命令(例如计划任务)定期运行已保存的命令(在每次执行后记下,删除或重命名文件)。这将它与subversion服务器的处理分离。