Subversion 可以在没有 mergeinfo 的情况下记录合并吗?

Can Subversion record a merge without mergeinfo?

我正在我们的一个存储库中搜索一组特别粗糙的旧修订,试图弄清楚几个假定的合并发生了什么。

当我查看目标分支中的一个修订版时,它显示的内容与源分支上的修订版完全相同(相信我,我也检查了差异):

$ svn --log --verbose --use-merge-history --revision 100 ^/target
------------------------------------------------------------------------
r100 | <author> | <date> | 1 line
Changed paths:
   A /path/to/new/file
------------------------------------------------------------------------

但是,少了点什么。任何地方都没有记录 mergeinfo 属性 更改,对吧?所以它不可能是合并,据我所知。可能是作者手动编辑了文件?

我仔细检查了 Subversion 认为符合条件的修订:

$ svn mergeinfo --show-revs eligible ^/source ^/target | grep 100

没有!尽管缺少 mergeinfo,Subversion 认为修订已被合并。

$ svn mergeinfo --show-revs merged ^/source ^/target | grep 100
r100

这可能吗?怎么样?


我阅读了 CollabNet article and the Svn Book section 关于缺少合并信息的文章。

哎呀,据我所知实际上 svn:mergeinfo 属性。我不记得 svn log 是否打印 属性-only 更改(它必须),尝试 运行ning svn log --verbose 或 运行 svn propget svn:mergeinfo --verbose against ^/target.


阅读SVNBook | Merges Without Mergeinfo

顺便说一句,不要忘记 mergeinfo 是在 Subversion 1.5 中引入的。因此,如果合并发生在较旧的 Subversion 版本中,则有可能这就是缺少 svn:mergeinfo 属性 的原因。

是的,出于无知的提交作者可以手动编辑文件以使提交看起来像合并。