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

使用TortoiseSVN – 当我使用testing合并,我得到的错误“ http:// mysvnserver / svn / main / branches / ProjectA必须祖先与http:// mysvnserver / svn / main / trunk / ProjectB相关 ”

我能做些什么来解决这个问题?

我刚刚经历了类似的问题,想增加我碰到的问题和解决scheme。 该分支是由树干的SUBFOLDER制成,而不是整棵树。 因此,当我尝试重新整合时,我是不匹配的层次结构。 简单地将集成重构为我的主干WD的正确子文件夹允许该过程继续。

join希望这可能会帮助一个谁打这个Q / A。 🙂

让我猜猜:项目是不相关的? 查看历史,如果其中一个曾经分支或不。

立即解决scheme:或者合并每手或者尝试命令行与“svn merge –ignore-ancestry”

正如davebytes提到的那样,当你将trunk\X branches\Ybranches\Y ,然后把X移动到一个新的文件夹Z ,即trunk\X\Z ,就会出现这个问题。

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

但是, SVN手册描述了底层的问题 : svn merge应该真的叫做svn diff-and-apply 。 在这种情况下,你应该试图描述的是,你正试图总结从branches\Y r100到r200发生的变化,并将这些变化应用到trunk\X\Z\

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

我们遇到这个问题是因为:

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

解决方法是:不要首先手动创build分支,而是使用TortoiseSVN – > Branch / tag …选项来创build分支。

希望这会有所帮助。

起初我试图在根文件夹中合并并得到错误,然后浏览到我想要合并的特定文件夹,然后select合适的文件夹进行合并。

例,

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

  -Root - Code - DB 

我创build了一个标签并将其更改为标签的DB文件夹。 现在我想把标签的变化带到分支。 所以,我切换到我的分支,并试图合并,并得到错误“必须是祖先相关的”。

所以解决scheme是,

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

现在,从URL合并,我select:

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

那么,我点击了“合并”button。

如果您的文件命名完全像其中一个分支(或中继),则可能发生此错误:

 # 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 . 

这是一个真实的例子,它耗费了我几个非常不愉快的时间。 🙁

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

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

这个问题是因为一个开发人员试图从一个他拥有读/写访问权限的分支集成他拥有读写访问权限的变更,但是最后一个是从另一个分支创build的一个他只拥有读权限的分支。

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

主干(r)发展(r)QA(rw)分支特征分枝1(rw)

在这种情况下,发展已经从干线,发展的QA和function分支1发展而来。 他尝试将featureBranch1重新集成到QA中,这是从开发中创build的一个分支,而且他没有写入权限来进行开发,这就是为什么当他尝试在QA中重新集成featureBranch1时收到此消息的问题。

在给他写信开发后立即消息消失。