Svn 如何创建特定于项目的响应提交后操作

Svn 如何创建特定于项目的响应提交后操作,svn,version-control,Svn,Version Control,目前,我们在各自的存储库中有几个主要项目。我们将不得不控制多达十几个额外的项目。VisualSVN建议为我们公司创建一个Resposition,然后对其中的所有项目进行风险投资 最好为整个公司或部门创建一个存储库,并将所有项目存储在此存储库中。为每个项目创建单独的存储库不是一个好主意,因为在这种情况下,您将无法执行诸如复制、差异和合并跨项目的Subversion操作 目前,我们正在使用提交后钩子更新测试服务器,使其具有最新的提交,并根据提交的项目执行其他特定于项目的操作(例如为某个项目向某些人发

目前,我们在各自的存储库中有几个主要项目。我们将不得不控制多达十几个额外的项目。VisualSVN建议为我们公司创建一个Resposition,然后对其中的所有项目进行风险投资

最好为整个公司或部门创建一个存储库,并将所有项目存储在此存储库中。为每个项目创建单独的存储库不是一个好主意,因为在这种情况下,您将无法执行诸如复制、差异和合并跨项目的Subversion操作

目前,我们正在使用提交后钩子更新测试服务器,使其具有最新的提交,并根据提交的项目执行其他特定于项目的操作(例如为某个项目向某些人发送电子邮件,但不为其他人发送电子邮件)


由于post-commit是针对整个存储库运行的,在这种情况下仍然可以这样做吗?我该如何去记录哪个项目发生了变化?筛选文件夹结构?

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

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


如果您公司的项目之间共享了一段公共代码,那么它应该成为自己的共享库项目(也有自己的存储库)。

从中,运行以找出哪些路径受提交影响。您可以使用
grep
来查看它们是否包含一些项目路径。

这正是我们在自己的存储库中拥有的共享库项目,它通过post-commit钩子在使用它的存储库中自动更新,这花了我一段时间。