使用 TortoiseSVN-当我使用 Test Merge 时,我得到错误“ http://mysvnserver/svn/main/branches/ProjectA必须与 http://mysvnserver/svn/main/trunk/ProjectB有祖先关系”
我该怎么做才能解决这个问题?
让我猜猜: 这些项目没有关联?查查历史,看看有没有分支。
即时解决方案: 每手合并或尝试命令行与“ svn 合并——忽略-祖先”
我刚刚经历了一个类似的问题,想要添加的问题和解决方案,我打。树枝是由树干的子文件夹而不是整棵树组成的。因此,当我试图重新整合时,我错误地匹配了等级制度。简单地重新构造集成到我的主干 WD 的适当子文件夹允许这个过程继续进行。
希望这可以帮助那些碰到这个问题的人:)
正如 Davebyte所提到的,当您将 trunk\X分支到 branches\Y,然后将 X移动到一个新的文件夹 Z(即 trunk\X\Z)中时,可能会发生这个问题。
trunk\X
branches\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\。
svn merge
svn diff-and-apply
trunk\X\Z\
在 TortoiseSVN 中,这是 合并两棵不同的树场景到 trunk\X\Z的本地工作副本,branches\Y的 r100设置为“ from”,branches\Y的 r200设置为“ to”。
由于以下原因,我们遇到了这个问题:
用 TortoiseSVN 的 repo 浏览器创建一个文件夹并将其用作分支。之后,我们尝试将手动创建的文件夹合并到工作文件夹中。
解决方案是: 首先不要手动创建分支,而是使用 TortoiseSVN-> Branch/tag... 选项来创建分支。
希望这能有所帮助。
如果您有一个名称与其中一个分支(或主干)完全相同的文件,则可能会发生此错误:
# 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 .
这是一个现实生活中的例子,它花费了我几个非常不愉快的小时
我在和另一个项目合并。造成了这个问题。我合并了正确的分支,然后它工作得很好。我的错,阅读障碍
起初,我试图合并在根文件夹和得到的错误,然后我浏览到特定的文件夹中,我想合并,然后选择合并的权利文件夹。
例如,
在我的分支中,我有项目结构:
-Root - Code - DB
我创建了一个标记并更改为标记的 DB 文件夹。现在我要将标记的更改带到分支。因此,我切换到我的分支,并尝试合并,得到了错误“ must be ancesturical related”。
所以解决办法就是,
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
然后我点了“合并”按钮。
我也有同样的错误,原因是关于权限。
这个问题是因为一个开发人员试图将一个分支的更改集成到另一个分支,他有读/写访问权,但是最后一个分支是从另一个分支创建的,他只有读访问权。
下面是具有权限的结构(r = read,w = write) :
树干(r) 发展(r) 质素保证(rw) 树枝 功能组别1(rw)
在这种情况下,开发是从主干创建的,QA 是从开发创建的,而 Branch1是从开发创建的。事实上,他试图将 Feature Branch1重新集成到 QA 中,QA 是一个由 development 创建的分支,他没有书面的权限来进行开发,在我们的例子中,这就是为什么他在试图重新集成 QA 中的 Feature Branch1时会收到这个消息的原因。
在给予他书面开发权限后,信息立即消失。
我也有同样的问题。我用正确的 cd 修复了它。我在路径目录中合并,而不是在路径目录中投影到主干(谁是实际的祖先)。