SVN-重新整合合并错误:“必须祖先相关”


Answers:


74

我刚遇到一个类似的问题,想补充我遇到的问题和解决方案。分支是由树干的SUBFOLDER而不是整个树制成的。因此,当我尝试重新整合时,我的层次结构不匹配。只需将集成结构重组为我的后备箱WD的正确子文件夹,即可继续进行该过程。

希望这可以帮助达到此Q / A的人。:)


2
完美-为我节省了“手动”合并的时间:)
劳伦斯·蒂尔尼

这有帮助(我的问题是分支已重命名),我只是将分支重命名(到旧分支)并重新分支。da是否比较了两个分支并重新调整了分支。
Allfocus 2011年

3
这也是我的问题。我有几个项目的解决方案。下拉菜单的默认值包含一个“较低级别”条目,而不是我需要与“工作副本”条目的最高级别对齐的条目。我删除了URL的末尾,以使其与Subversion存储库的顶级URL相匹配。
ja928

20

我猜:这些项目没有关系吗?查看历史记录,如果其中之一是否分支过。

即时解决方案:每手合并或尝试使用“ svn merge --ignore-ancestry”命令行


1
当我使用--ignore-ancestry时出现此错误。svn:E200004:忽略mergeinfo时无法自动合并
Akhil Surapuram

9

davebytes所述,当您分支trunk\Xbranches\Y,然后移到X新文件夹时Z,可能会发生此问题trunk\X\Z

如果您只是尝试将上的更改合并branches\Ytrunk\X,则会遇到很多冲突;如果您只是尝试合并branches\Y到中trunk\X\Z,则会出现“祖先相关”错误。

但是,SVN手册描述了潜在的问题svn merge应该真正调用svn diff-and-apply。在这种情况下,您应该尝试描述的是,您要总结从r100到r200发生的更改branches\Y,并将这些更改应用于trunk\X\Z\

在TortoiseSVN中,这是将两个不同的树方案合并到的本地工作副本中trunk\X\Z,其中r100的branches\Y设置为“ from”,r200的branches\Y设置为“ to”。


6

由于以下原因,我们遇到了此问题:

使用TortoiseSVN的回购浏览器创建一个文件夹,并将其用作分支。之后,我们尝试将手动创建的文件夹合并到工作文件夹中。

解决方案是:不要首先手动创建分支,而要使用TortoiseSVN-> Branch / tag ...选项来创建分支。

希望这会有所帮助。


不幸的是,外出的同事不知道这一点,这留给我们来解决这个问题!
cindyxiaoxiaoli 2014年

8
这实际上并没有告诉您如何解决它。只是如何避免它。这确实是有价值的信息,但可能会更加完整。
西德尼·德·莫拉兹

将其视为比通常的注释更长的注释,并且需要更多的关注,介于注释和答案之间。
Memet Olsen

3

最初,我尝试在根文件夹中进行合并并出现错误,然后浏览至要合并的特定文件夹,然后选择要从中进行合并的正确文件夹。

例,

在我的分支机构中,我具有项目结构:

 -Root    
    - Code
    - DB

我创建了一个标签,并更改为该标签的DB文件夹。现在,我想将标记的更改带到分支。因此,我切换到分支并尝试合并,并得到错误“必须与祖先相关”。

所以解决方案是

I browsed to "DB" folder in branch, right click and select Tortoise SVN->Merge-> Merge a range of revisions -> 

现在,从要合并的URL中,我选择:

the "DB" folder from my tag.
Then, "test branch". Everything worked fine :D

因此,然后单击“合并”按钮。


2

如果您有一个名称与分支(或主干)之一完全相同的文件,则可能会发生此错误:

# svn switch ^/trunk
Updated to revision 123.
# ls
file1
file2
v1
# svn merge --reintegrate ^/branches/v1
svn: E195016: ^/branches/v1@123 must be ancestrally related to ^/trunk/v1@123

要解决此问题,请在命令中添加当前目录(注意点):

# svn merge --reintegrate ^/branches/v1 .

这是一个真实的例子,这使我花费了几个非常不愉快的时间。:(


1

我正在与另一个项目合并。造成这个问题。我与正确的分支合并,然后工作正常。我的阅读障碍


1

我有同样的错误,原因是关于权限。

问题是,因为一个开发人员试图将更改从一个他具有读/写访问权限的分支集成到另一个他也具有读/写访问权限的分支中,但最后一个是从另一个拥有读取访问权限的分支创建的分支。

这是具有权限的结构(r =读,w =写):

主干(r)开发(r)质量检查(rw)分支FeatureBranch1(rw)

在这种情况下,已从躯干创建了develop,从develop已创建了QA,并从develop已创建了featureBranch1。在我们的案例中,他尝试将featureBranch1重新集成到QA中,该事实是从development创建的分支,并且他无权以书面形式进行开发,这就是为什么他试图在QA中重新集成featureBranch1时收到此消息的问题。

在给他写开发权限后,该消息立即消失。


1

我有同样的问题。我通过正确合并的CD修复了它。我正在合并路径目录中的项目,而不是将其合并到主干的路径目录中(后者是实际的祖先)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.