我们的存储库有这样的结构:
Dev
Project1
source
docs
...
Project2
source
docs
...
...
在我们提交对Project1源的更改之后,我们想要部署Project1(编译,测试,复制等)。如何找到我们提交给Dev / Project1的post-commit-hook,以便我们可以导出这个项目并在其上运行一些任务?当提交到svn(例如使用TortoiseSVN)时,会写入:“承诺:......”如何找到“承诺”?
答案 0 :(得分:3)
你应该使用
svnlook changed -r REV REPOPATH
在post-commit钩子中。 SVN将提供REPOPATH和REV作为参数。 您将获得一个包含所有已更改路径的列表(新行分隔)。然后,您可以轻松地使用grep或其他任何内容来搜索更改的路径。
记住:启动一个用于构建/部署的新线程,因为svn将等到post-commit hook完成后(因此在部署完所有内容之前你不会看到“Committed Revision XX”)。 / p>
答案 1 :(得分:2)
我建议使用像CruiseControl.NET这样的持续集成服务器而不是使用post commit hook进行集成任务。
这些工具可以轻松监视存储库中是否存在特定网址下的更改,但它们不必使用与您的subversion服务器相同的权限运行。特别是它们永远不会破坏您的存储库。您可以在任何(旧)服务器上运行它们,同时可以在更突出/稳定/备份的服务器上运行存储库。