当我从TRUNK的修订版创建一个分支时,我的结果分支没有设置任何mergeinfo,因此我可以告诉它不可能弄清楚分支来自哪个版本。
我有一些脚本应该会在以后自动生成针对TRUNK的差异,但是我没有我需要的修订号。如果我再次与main合并,我将获得merginfo设置,以便脚本可以将其拉出来。
我也可以
svn merge --record-only svn+ssh://{url}/main@{revision}
这将设置修订版。但它很慢,需要检查源并提交更改。
我还可以更改脚本以仅从分支中的更改生成diff,除非有mergeinfo,然后回退到针对trunk进行区分,但特殊情况 正在使这个非常复杂。
有更简单的方法吗?
澄清: 在做了更多的颠覆研究后,我读了this。我需要的是一种访问IMPLICIT mergeinfo的编程方式,因为当您通过副本创建分支时,您不会获得显式的mergeinfo属性。
隐式属性实际上是/TRUNK:1-BRANCHPOINT
,表示分支包含最多BRANCHPOINT
的所有修订。我试图找到的是BRANCHPOINT
分支完成后。
答案 0 :(得分:3)
从这个问题来看,我并不完全确定你想要产生什么差异。 但是,您始终可以使用以下命令获取分支的修订:
svn log -v --stop-on-copy -r 1:HEAD -l 1 svn+ssh://{url}/branch
这首先命令修订版本最早,不会超出该分支的复制操作,并将其限制为1版本(复制操作本身)。
然而,svn mergeinfo考虑了分支操作并认为它们已经合并(我认为有一段时间没有这样做,这很烦人,但它已经修复了一段时间),所以使用mergeinfo来看看是什么在任何一个方向合并的nees都会向你显示一些合理的东西。