Svn Subversion合并信息,它有多重要?

Svn Subversion合并信息,它有多重要?,svn,svn-merge,Svn,Svn Merge,我有点好奇Subversion中的合并信息是如何使用的,如果合并信息不正确,会遇到什么样的问题 例如,我从trunk分支了branch1和branch2。我还有一个subbranch1和一个subbranch2源于branch1。考虑我在代码< BrnCH2中做了一些开发,然后使用 Svn合并重新集成到主干中——重新集成^ /分支2。然后,我想将这些更改也添加到subbranch1(从trunk)中,并错误地使用了命令,svn merge--reintegrate^/trunk(从而将--rei

我有点好奇Subversion中的合并信息是如何使用的,如果合并信息不正确,会遇到什么样的问题

例如,我从
trunk
分支了
branch1
branch2
。我还有一个
subbranch1
和一个
subbranch2
源于
branch1
。考虑我在代码< BrnCH2中做了一些开发,然后使用<代码> Svn合并重新集成到主干中——重新集成^ /分支2。然后,我想将这些更改也添加到
subbranch1
(从
trunk
)中,并错误地使用了命令,
svn merge--reintegrate^/trunk
(从而将
--reintegrate
标记添加到merge命令中,即使
subbranch1
不是
trunk
的直接祖先)


这会在将来导致什么问题?

合并信息跟踪此信息:

  • 分支之间的关系(
    subbranch1
    源自
    branch1
    ,后者源自
    trunk
    ,等等)
  • 哪些修订已经合并

如果合并信息丢失或不正确,则必须手动跟踪合并,这可能容易出错。通过使用合并信息,您只需让Subversion跟踪所有这些信息。

此答案已被弃用。请使用Subversion>=1.6。


一般来说,分支方法是危险的,但由于事故,情况更糟

在重新渲染所有分支时,您会遇到很多问题

  • branch2所做的更改可能看起来像是对subversion的删除
  • 您所做的删除可能看起来像是对subversion的添加
  • 三向比较可能会产生奇怪的结果(例如,将同一段代码放入文件中两次)
您不能再信任三方比较,您必须手动检查每个更改

有关更多信息,请参阅


顺便说一句,我有一次不得不解决这样的问题。从那时起,我们就开始使用bunny hopping(参见链接)。

关于这篇博文,我认为bunny hopping是没有必要的,因为SVN 1.5会为您跟踪此类内容。SVN 1.5修复了一些问题,但是如果您进行大量合并和分支,您将遇到麻烦。bunny hop不是必需的。这是一个解决不良SVN实践的方法。如果要对主干和分支进行大量更改,为什么人们希望合并很简单?(尤其是在相同的代码上!)@exception:不,这不是必需的,而且您是对的,它是错误使用的解决方法。但是兔子跳跃为那些成员并不真正理解分支的大型团队工作。这只是一个务实的解决方案。这个问题有一个很好的例子,就是有时会发生错误,事后很难解决。希望人们最终会使用Subversion>=1.6…由于公司标准,我们有许多工作分支并使用SVN。我可以根据我们团队的经验确认,这种分支方法使SVN的使用变得非常简单。