如何查找分支中是否包含某些提交?

时间:2013-08-27 08:45:52

标签: svn branch

在开发过程中,我们进入trunk,当时间到来时我们创建分支进行单独测试并进一步转换为标记。

我的问题是:是否有一种简单的方法可以找出一些提交,即我们几天前制作的主干,是否在我们的分支内?

这个问题的不同风格:如何找出分支的创建时间?

(换句话说,如果在创建分支之后完成,我的分支可能会错过一些提交。我想确保提交在分支内部。检查这个的一种方法可能是--dry-run merge所有修订版)

2 个答案:

答案 0 :(得分:1)

svn log -q --stop-on-copy /URL/OF/BRANCH

列表中的最后一次修订是分支的第一次修订

答案 1 :(得分:0)

  

有没有一种简单的方法可以找出我们在几天前进入trunk的某些提交是否在我们的分支内?

这可能要求两件事:

  • 您在同一次提交中对中继和分支进行了更改。
    • svn log -v会显示此信息。
    • 您还可以在主干和分支上执行svn log --xml。将修订存储在分支的哈希中,然后在解析主干的输出时,可以看到分支上是否存在重复的修订。
  • 您进行了合并,因此trunk中特定修订的更改位于您的分支中。在这种情况下,您可以查看分支上的svn:mergeinfo属性,该属性将显示已将哪些卡车修订合并到分支中。 svn plist -v -R svn:mergeinfo将在整个目录树中的任何文件或目录中找到所有svn:mergeinfo属性,并显示合并了哪些修订。
  

这个问题的不同风格:如何找出分支的创建时间?

要找出分支的创建时间:

 svn log -v --stop-on-copy -r1:HEAD /usr/of/branch | head

这将显示从最低到最高的分支上的所有修订,因此它将显示该分支上的第一个修订。 head限制了输出。您不应该需要超过10行。 -v标志将显示复制的修订版本和来自哪个源。

输出看起来像这样:

r160214 | dweintraub | 2013-04-23 13:41:43 -0400 (Tue, 23 Apr 2013) | 1 line
Changed paths:
   A /branches/4.8 (from /trunk:160213)

Creating a release branch for 4.8 release
-----------------------------------------------------------------

4.8分支机构于2013年4月23日由我从trunk的修订版160213创建。