2

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

4

4 回答 4

3

我们使用位于您的任务栏中的SVN 通知程序(仅限 Windows),并在监视的存储库发生更改时提醒您。这是避免噩梦合并的最佳方法 - 如果您在另一个人提交后立即更新,那么合并应该很容易..

于 2009-06-12T15:32:06.703 回答
1

分解你的项目。将系统划分为子系统和组件,并在源代码控制中为每个组件提供一个专用文件夹。

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

于 2009-06-12T15:38:32.100 回答
1

@CtrlAltDel,我打电话给 BS,建议任何风格的 DVCS 都是解决这个问题的灵丹妙药。在这种情况下,您可能会成功地将合并负担从提交时间转移到集成时间,这可以说是一个更令人头疼的问题。现在,您不必在集中式存储库上实时遇到冲突,而是让开发人员在他们自己的分布式存储库中处理日益多样化的代码库。将它们拼凑成一个连贯(且有效)的产品并非易事。

我认为通知开发人员存储库提交的解决方案具有真正的优点。如果您不是 Windows(并且不能使用 SVN 通知程序,正如 Mark 建议的那样),我建议您在每次提交时更新 RSS 提要。你可以通过 post-commit 存储库钩子来做到这一点——网上的例子比比皆是。

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

于 2009-06-12T16:37:29.667 回答
0

除了:

  • 切换到 GIT :) (或 hg)
  • 按照你的建议忍受它。
于 2009-06-12T15:31:32.257 回答