代码之家  ›  专栏  ›  技术社区  ›  rhettg

从带有mergeinfo的修订的Subversion分支

svn
  •  0
  • rhettg  · 技术社区  · 15 年前

    当我在主干修订版上创建分支时,得到的分支没有任何mergeinfo集,据我所知,不可能找出分支后来的修订版。

    我有一些脚本应该在以后针对主干自动生成差异,但我没有所需的修订号。如果我再次与main合并,我将设置merginfo,这样脚本就可以将其拉出。

    我也能做到

    svn merge --record-only svn+ssh://{url}/main@{revision}
    

    这将设置修订。但这很慢,需要签出源代码并提交回更改。

    我还可以更改脚本以仅从分支中的更改生成diff,除非存在mergeinfo,然后回退到针对主干的diff,但是特殊情况下 这让事情变得非常复杂。

    有更简单的方法吗?

    澄清: 在做了更多的颠覆性研究之后,我读到 this .我需要的是一种访问隐式mergeinfo的编程方法,因为当通过copy创建分支时,不会获得显式mergeinfo属性。

    隐式性质是有效的 /TRUNK:1-BRANCHPOINT 指示分支具有以下所有修订 BRANCHPOINT 包括。我想找的是 分支点 在分支建立之后。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Jim T    15 年前

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

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

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

    但是,svn mergeinfo考虑了分支操作并认为它们已经合并(我认为有一段时间它没有这样做,这很烦人,但已经修复了一段时间),所以使用mergeinfo查看在任何方向合并的NEE将向您展示一些明智的做法。