如何避免Subversion中的复杂合并?

Ach*_*les 8 svn version-control tortoisesvn ankhsvn

我是来自Visual Source Safe(VSS)背景的Subversion(SVN)新手.在VSS中,编辑文件的人检查文件,并锁定其他用户通过Visual Studio编辑它.我知道SVN是一个并发模型,允许多个人在同一个文件上工作,然后将更改合并在一起.我的问题是:

  1. 避免让用户编辑同一个文件(写入大量代码和大量代码)的最佳方法是什么,要么面对复杂的合并进行更改,要么更糟糕的是编写大量代码才发现该文件被其他用户锁定?

  2. 有没有办法在检索当前正由另一个用户编辑或当前被另一个用户锁定的文件时通知用户?

其他详情:

使用VisualSVN Server作为SVN服务器.
使用TortoiseSVN和AnkhSVN客户端.

Hec*_* Jr 12

我也是以前的Visual Source Safe用户.Merges曾经让我发疯,直到我意识到这不是一个技术问题,而是一个人的问题.使用VSS时,大多数开发人员在必须检查代码之前尝试尽可能多地完成工作.此行为是导致复杂合并的原因.

以下是一些可以缓解此问题的方法:

  • 始终在开始之前更新您的工作副本
  • 经常入住.这将使代码更改更小,这将更容易自动合并
  • 不要取消选中工作代码
  • 如果更改需要几天或更长时间,开发人员应创建自己的分支

这些事情帮助极大,尤其是我工作的团队越来越大.从VSS复制锁定行为是一个非常糟糕的主意,并且会导致更多问题.只需拥抱新的工作流程.

如果您仍想使用工具,那么我建议您查看SVNMonitor.

  • 你错过了一个重要的事情,这使得Branching能够与之合作.经常更新...人们已经登记到您的分支机构的主干更改.与您在第1点中所说的相同.对你的分支做同样的事情.不应该采取任何不同的对待.如果您经常更新您的分支机构,而且人们每天都会检查后备箱,那么您最终不会有任何合并地狱,因为您的分支机构中的代码几乎是最新的或接近最新的因为你一直在宗教上更新你的树枝,所以在树干里面是什么!每天的小痛苦让生活变得轻松 (2认同)

Dan*_*son 8

我想建议采用不同的方法来使用subversion.

  • 您应该经常获得更新.
  • 您也应该提前和经常办理入住手续.

使用这种方法,合并通常很少发生并自动发生.在冲突的情况下,这些通常较小.