2012-08-27 99 views
3

我使用SVN版本1.6和我有很多的使用命令行合并的问题抓住了太多的文件。我试图将一个修订版本(我们称之为修订版本5)从一个分支合并到另一个分支。SVN合并与修订号

我使用命令行合并。我在我想合并到的分支中CD'ed,并尝试以下命令:

  • svn merge -r4:5 FROMBRANCH。
  • svn merge -r4:5 FROMBRANCH
  • svn merge -c5 FROMBRANCH。
  • SVN合并-C5 FROMBRANCH

没有这些命令似乎正常工作。每次我发出一个合并命令,然后做一个“svn状态”,我得到一个非常长的文件列表。该列表包括来自修订版#5的文件,以及我不想合并的许多其他文件。

(注:“SVN复归-R”我已经使得没有任何文件已被使用“的svn status”本地更改我也已经恢复了更改后每个合并使用尝试)

有什么建议吗?谢谢!

+0

您是否使用svn log -v -c 5 _repositorypath_验证了您获得的“额外”文件不是修订版5的一部分? – james

+0

是的。当我运行svn log时,我只能看到该版本中的文件。 –

回答

2

“svn status”显示的长文件列表可能是由于“mergeinfo”属性更新引起的。

因为这样做合并到<目标分支>时解释here,其中有合并信息属性集<目标分支>的所有子树现有的合并信息颠覆更新。

这意外的行为已经颠覆了不客气1.7

(从颠覆1.7的changelog)

梅杰斯不再记录合并信息的子树 (描述合并)(也有自己明确的mergeinfo),如果子树是 不受合并影响。这应该会大大减少 虚假svn:合并信息属性更改数量为 具有显式合并信息的子树数量的用户。

如果正在合并的更改包含svn:mergeinfo修改,这些 仍将应用,就像其他任何属性修改一样。所以,如果 要合并的变化是自身的另一个结果撤并 用1.5或1.6的客户端进行的,过度的子树合并信息 变化仍然是可能的。新的 分支机构将为1.7个客户创建并维护最佳结果。

+0

这是不是纯粹与mergeinfo属性更改有关?就像@Joni一样,在svn合并到我的分支之后,我得到一长串'M'修改过的文件(它们没有被修改,因为它们的内容与基本拷贝一样,甚至包括行尾),这绝对没有改变我的主干上的原始修订版本是我合并的来源。 –