虽然这里有几个类似的问题(例如,SVN - Reintegration Merge error: "must be ancestrally related")和网络上,但我无法弄清楚为什么svn mergeinfo <file>
会在我的所有 SVN 存储库中导致错误。与我发现的所有其他问答相比,我实际上能够svn merge
成功执行。例如,撤消对pom.xml
文件的先前提交:
svn merge -r 17409:17408 pom.xml
--- Reverse-merging r17409 into 'pom.xml':
U pom.xml
--- Recording mergeinfo for reverse merge of r17409 into 'pom.xml':
U pom.xml
--- Eliding mergeinfo from 'pom.xml':
U pom.xml
但是,当我执行时svn mergeinfo
,我收到以下错误:
svn: E195016: 'https://../trunk/MyProject/pom.xml@50446' must be ancestrally related to
'https://../trunk/MyProject@50446'
在此示例中,50446 是当前的头版本号,并且对于我尝试过的每个文件,我都会遇到相同的错误。只有当我在顶级目录本身上执行 mergeinfo 命令时,它才有效:
svn mergeinfo .
youngest common ancestor
| last full merge
| | tip of branch
| | | repository path
50446 50446
| |
-------| |------------ ../trunk/MyProject
\
\
--| |------------ ../trunk/MyProject
|
50446
更奇怪的是,我没有找到任何 mergeinfo 属性集。命令喜欢svn propget svn:mergeinfo --recursive
或svn propget svn:mergeinfo --depth=infinity
不输出任何内容并成功返回状态码 0。
有谁知道如何将我们的文件修复为与它们所在的项目再次“祖先相关”?