3

我们的存储库具有如下结构:

Dev
    Project1
        source
        docs
        ...
    Project2
        source
        docs
        ...
    ...

在我们提交对 Project1 源的更改后,我们希望部署 Project1(编译、测试、复制等)。如何在 post-commit-hook 中找出我们提交给 Dev/Project1 的内容,以便我们可以导出该项目并在其上运行一些任务?当提交到 svn(例如使用 TortoiseSVN)时,ir 写成:“提交到:...” 如何找到“提交到”?

4

2 回答 2

3

你应该使用

svnlook changed -r REV REPOPATH

在提交后挂钩中。SVN 将提供 REPOPATH 和 REV 作为参数。您会得到一个列表,其中包含所有更改的路径(新行分隔)。然后,您可以轻松地使用 grep 或其他任何东西来搜索更改的路径。

请记住:为构建/部署启动一个新线程,因为 svn 将等到提交后挂钩完成(因此在部署所有内容之前您不会看到“提交的修订版 XX”)。

于 2009-10-14T09:47:49.430 回答
3

我建议使用像CruiseControl.NET这样的持续集成服务器,而不是使用提交后挂钩来完成集成任务。

这些工具可以轻松地监控你的存储库在特定 url 下的更改,但它们不必以与你的 subversion 服务器相同的权限运行。特别是它们永远不会破坏您的存储库。您可以在任何(旧)服务器上运行它们,而您可以在更突出/稳定/备份的服务器上运行您的存储库。

于 2009-10-14T14:27:47.787 回答