2013-08-26 66 views
4

当我使用第二个SVN合并选项,即“重新合并分支/自动合并”时,我收到上面的错误消息。我明白为什么我得到的错误,即它是因为在创建分支时,我只是拖放项目进树干一个新的分支(使用回购浏览器),而不是下列方法之一:SVN:必须与祖先相关

  1. 使用复制到选项在库浏览器
  2. 使用分支/标签选项(右在Windows Explorer中单击项目,选择TortoiseSVN /科/标签)

我有三个问题:

  1. 为什么项目必须与祖先相关?这个问题表明,如果选择此选项,SVN只是进行文件比较:What are the differences between merging a range of revisions vs. reintegrate in SVN?
  2. 以上两个选项是否使项目祖先相关?
  3. 从Trunk到项目的简单拖拽项目是否使项目无关联?

回答

13

为什么项目必须与祖先相关?这个问题表明,如果选择了这个选项,SVN只是做一个文件比较:SVN合并一系列修订与重新合并。

合并不仅仅复制文件的更改从一个分支到另一个,这是最后的共同祖先与这两个文件被合并的比较。这是一个三种方式合并。

比方说,你对树干文件:

Line #1 
Line #2 
Line #3 
Line #4 

你让这个文件的一个分支。

在树枝上,你作为4号线改变:

Line #1 
Line #2 
Line #3 
Line #4 FOO FOO FOO 

在树干上,你变线#3

Line #1 
Line #2 
Line #3 BAR BAR BAR 
Line #4 

颠覆之前的最后一个共同祖先(该文件版本进行比较任何更改)与您正在合并的文件版本。如果我将树干合并到树枝上,Subversion会看到我在树干上更改了3号线,但没有更改4号线。因此,第3行的更改需要结束,但第4行的差异是分支更改的结果,我不应该通过中继线的第4行复制

合并文件看起来像这样:

Line #1 
Line #2 
Line #3 BAR BAR BAR 
Line #4 FOO FOO FOO 

颠覆也考虑到先前合并的变化,改变了你想跳过。这实际上是一个非常好的合并工具,除非你开始重新命名文件并在批发中移动它们。 (这个假设在Subversion 1.9中得到纠正)。

因此,为了使合并工作,这两个文件必须份额可以用作合并基地一个共同的祖先。如果没有它,Subversion将无法分辨出主干上的文件行更改与分支上更改的内容。否则,它只是将文件从一个分支复制到另一个分支。

你可以尝试--ignore-ancestry参数。这会导致Subversion将合并视为差异。

做两种选择上面使祖先相关的项目?

这两个选项(我认为你在考虑--reintegrate vs没有这个选项)使项目祖先相关。这来自通过svn cp分支。与不重新融合相比,--reintegrate与合并的方式有关。当您从基流(通常为主干)合并到您的支流,要合并是您基流发生在支流的的变化。这会产生新的修订。当你重新合并,颠覆看到了新的修订,并希望这些修订合并到您的基流,在再集成选项的发生删除此。

而且,当你重新融入社会,创建你的基流一个新的版本,这是为什么你不要以为一旦你使用了--reintegrate从您支流回你基流合并。您可以通过--reintegrate后从您的支流--record-only合并到您的基流克服这一点。

从Trunk到项目的简单拖放项目是否使项目与祖先无关?

取决于Subversion客户端。一些GUI Subversion客户端可以理解为拖拽为svn cp,而不是仅仅将文件复制到另一个目录。但是,TortoiseSVN通过Windows资源管理器工作,因此默认情况下的拖放操作是文件系统副本。有一个选项,当你用鼠标右键点击拖放来做svn cp而不是Windows文件系统副本。

+0

感谢全面的答案。 +1。我唯一的疑问是,复制似乎使项目与祖先相关? – w0051977

+0

是的,如果你在谈论***'svn cp' ***。让Subversion知道各个分支是如何相互关联的。使用操作系统版本的副本(即Windows拖动和复制)进行复制不会将Subversion提示到分支的关系。相反,Subversion将该分支上的文件视为一组完全不同的文件。其他版本控制系统不会遭受同样的命运,因为分支是文件内部的。如果您使用TortoiseSVN,请在拖动时单击鼠标右键并选择'SVN Copy versioned item(s)here''。 –

+0

谢谢。我假设在Windows资源管理器中右键单击工作副本并选择乌龟svn /分支就相当于在回购浏览器中选择“复制到”了吗? – w0051977

相关问题