使用SVN合并跟踪时,防止工作副本过期

时间:2009-06-12 15:25:55

标签: svn merge-tracking

在Subversion 1.5中使用合并跟踪功能时,SVN会更新父文件夹的mergeinfo属性以跟踪要合并的修订。我们有大量的开发人员(> 500)在我们的存储库上工作,并且在大多数开发人员都试图在同一时间进行提交的最后期限并不少见。如果其他开发人员自上次更新后已提交到同一文件夹,则由于mergeinfo中的更改,您必须在提交之前更新。那么如何防止开发人员被迫反复更新其工作副本的情况,因为每次更新时,其他人都会在他们做之前提交到该文件夹​​?或者人们刚刚忍受的情况是否足够罕见?

4 个答案:

答案 0 :(得分:3)

我们使用位于任务栏中的SVN Notifier(仅限Windows),并在监视的存储库发生更改时向您发出警报。这是避免恶梦合并的最佳方法 - 如果你在另一个人提交时更新,那么合并应该很容易..

答案 1 :(得分:1)

处理项目的分解。在子系统和组件中对系统进行分区,并为每个组件提供源控制中的专用文件夹。

在同一个文件夹中工作的数百名开发人员似乎是一个管理网络的噩梦,不仅仅是因为这些svn问题。

答案 2 :(得分:1)

@CtrlAltDel,我打电话给BS,建议任何风味的DVCS都是这个问题的银弹。在这种情况下,您可能成功做的就是将合并负担从提交时间转移到集成时间,这可能是一个更大的问题。现在,您不必在集中式存储库中实时遇到冲突,而是让开发人员在他们自己的分布式存储库中处理越来越多的代码库。将它们拼凑成一个连贯的(和工作的)产品是非常重要的。

我认为通知开发人员提交存储库提交的解决方案具有实际价值。如果您不是Windows(并且不能像Mark建议的那样使用SVN Notifier),我建议每次提交时更新RSS提要。你可以通过一个post-commit存储库钩子来做到这一点 - 网上有很多例子。

但是,当存储库中的某些内容发生变化 时收到通知很快就会分散注意力。对于更精细的RSS,我使用WebSVN(您必须启用RSS)。基本上,您可以为任何存储库路径(文件或目录)请求RSS源,并为您动态生成/更新它。您也可以根据需要随时刷新RSS - 最后一个版本将被缓存,直到提交新版本为止。所有平台上都有许多RSS阅读器可以提醒开发人员注意变化。

答案 3 :(得分:0)

除了以下问题之外,没有解决此问题的方法:

  • 切换到GIT :)(或hg)
  • 按照你的建议做好准备。