我在我们的一个存储库中搜索了一组特别粗略的旧版本,试图找出一些假设的合并发生了什么。
当我查看目标分支中的一个修订版时,它向我显示的内容与源分支上的修订版完全相同(相信我,我也检查了差异):
$ 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
这可能吗?怎么样?
我在遗失的mergeinfo上阅读了CollabNet article和Svn Book section。
答案 0 :(得分:2)
哎呀,据我所知,实际上是 svn:mergeinfo
属性。我不记得svn log
是否打印了仅属性更改(必须),尝试运行svn log --verbose
或针对svn propget svn:mergeinfo --verbose
运行^/target
。
阅读SVNBook | Merges Without Mergeinfo。
BTW,不要忘记在Subversion 1.5中引入了mergeinfo。因此,如果合并发生在较旧的Subversion版本中,则可能是svn:mergeinfo
属性丢失的原因。
是的,提交作者出于无知可以手动编辑文件,使提交看起来像合并。