关于SVN:如何创建项目特定的存储库提交后的操作

关于SVN:如何创建项目特定的存储库提交后的操作

How to create project specific respository post-commit actions

目前,我们在自己的存储库中有几个主要项目。 我们将必须对多达十二个其他项目进行版本控制。 VisualSVN建议为我们的公司创建1个存储库,然后使用vc中的所有项目。

It's a good practice to create one repository for the entire company or department and store all your projects in this repository. Creating separate repository for each project is not a good idea because in that case you will not be able to perform Subversion operations like copy, diff and merge cross-project. VisualSvn.com

当前,我们正在使用提交后挂钩,以最新的提交来更新测试服务器,并根据已提交的项目执行其他项目特定的操作(例如,通过电子邮件向某人发送一个项目,而不向其他人发送电子邮件)。

在整个仓库运行提交后,在这种情况下仍然可行吗? 我将如何确定哪个项目进行了更改? 筛选器文件夹结构?


post-commit挂钩中,运行svnlook changed命令以找出哪些路径受提交影响。 您可以使用grep来查看它们是否包含某些项目路径。


您可以检查已提交文件的路径,以确定它们属于哪个项目。 请记住,一次提交可以一次修改多个文件,并且每个文件理论上可以属于一个不同的项目。


我不确定我是否同意VisualSVN的建议。 我总是为每个项目设置单独的存储库,而且从未遇到过希望跨项目合并的情况。

如果贵公司的项目之间共享大量的通用代码,则它应成为自己的共享库项目(也具有自己的存储库)。


推荐阅读