使用mergeinfo进行修订的Subversion分支

时间:2009-11-24 02:58:25

标签: svn

当我从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分支完成后。

1 个答案:

答案 0 :(得分:3)

从这个问题来看,我并不完全确定你想要产生什么差异。 但是,您始终可以使用以下命令获取分支的修订:

svn log -v --stop-on-copy -r 1:HEAD -l 1 svn+ssh://{url}/branch

这首先命令修订版本最早,不会超出该分支的复制操作,并将其限制为1版本(复制操作本身)。

然而,svn mergeinfo考虑了分支操作并认为它们已经合并(我认为有一段时间没有这样做,这很烦人,但它已经修复了一段时间),所以使用mergeinfo来看看是什么在任何一个方向合并的nees都会向你显示一些合理的东西。