SVN-查看基于签出时间的分支中的更改

SVN-查看基于签出时间的分支中的更改,svn,Svn,我想查看与分支关联的修改。我可以很好地将它与主干的当前状态进行比较,但是主干不断更新,所以我看到的变化超出了该分支的范围。如何确定分支基于哪个版本的主干,然后进行差异(我喜欢使用BeyondCompare,所以我需要获得两组文件)以查看修改。这是一项简单的任务,我将如何完成这一壮举 谢谢和亲切的问候, 将--stop on copy选项标记到svn log命令,这将打印出分支上的所有更改,直到它到达分支所在的第一个版本 svn log --verbose --stop-on-copy . sv

我想查看与分支关联的修改。我可以很好地将它与主干的当前状态进行比较,但是主干不断更新,所以我看到的变化超出了该分支的范围。如何确定分支基于哪个版本的主干,然后进行差异(我喜欢使用BeyondCompare,所以我需要获得两组文件)以查看修改。这是一项简单的任务,我将如何完成这一壮举

谢谢和亲切的问候, 将--stop on copy选项标记到svn log命令,这将打印出分支上的所有更改,直到它到达分支所在的第一个版本

svn log --verbose --stop-on-copy .
svn diff将向您显示更改-您可以通过设置svn log命令的--stop on copy选项,将其设置为自动使用超越比较。如果您希望--stop on copy选项,这将打印出分支上的所有更改,直到它到达分支所在的第一个修订版本

svn log --verbose --stop-on-copy .

svn diff将向您显示更改-您可以通过设置将其设置为自动使用超越比较。

svn日志将向您显示创建分支的时间和复制分支的位置(即,如果您按照下面解释的正确方式进行操作)。我想使用以下命令:

$ svn log -v -r1:HEAD --stop-on-copy $REPO/branches/$branch_name | head
这将列出从最年轻到最老的分支,这意味着您将在顶部看到第一次修订,而不是等待整个日志打印。
--stop on copy
将打印分支历史的开头,而不是跟随从中复制的分支的历史。
-r1:HEAD
按相反顺序打印,而
-v
则打印出将回答您问题的副本信息。到
头部的管道
仅将输出限制在前10行,足够:

$ svn log -v -r1:HEAD --stopy-on-copy $REPO/branches/1.3 | head
------------------------------------------------------------------------
r160215 | dweintraub | 2013-04-23 13:42:54 -0400 (Tue, 23 Apr 2013) | 2 lines
Changed paths:
   A /branches/1.3 (from /trunk:160214)

Created branch from Trunk

------------------------------------------------------------------------
r160325 | rrandive | 2013-04-25 08:03:14 -0400 (Thu, 25 Apr 2013) | 1 line
从这里,您可以看到1.3分支的第一个版本是修订版160215,它是从trunk的修订版160214复制的。这将为您提供比较的基础。我知道有些人制作一个分支点标记,然后从该分支点标记进行分支:

这为他们提供了一种标准方法来比较分支上的所有更改与分支点处的主干上的所有更改:

$ svn diff --summarize $REPO/branch_point/2.4 $REPO/trunk  #Changes on trunk since branch
$ svn diff --summarize $REPO/branch_point/2.4 REPO/branches/2.4 #Changes on the branch
这样,您就不必一直返回到
svn日志
来找出更改列表。请记住,
主干
分支
、和
标记
都是惯例。您可以定义自己的,也可以添加到其中。例如,您可能有一个
jenkins\u builds
标记您的jenkins构建。想象一下,如果Jenkins在成功构建后执行此操作:

$ svn cp $REPO/trunk $REPO/jenkins_build/$BUILD_NUMBER
这使得在构建之间很容易区分:

$ svn diff $REPO/jenkins_build/12 $REPO/jenkins_build/56
或者,将特定Jenkins构建标记为发行版:

$ svn cp $REPO/jenkins_build/33 $REPO/tags/2.3

svn日志
将显示分支的创建时间和复制位置(也就是说,如果您按照下面解释的正确方式进行操作)。我想使用以下命令:

$ svn log -v -r1:HEAD --stop-on-copy $REPO/branches/$branch_name | head
这将列出从最年轻到最老的分支,这意味着您将在顶部看到第一次修订,而不是等待整个日志打印。
--stop on copy
将打印分支历史的开头,而不是跟随从中复制的分支的历史。
-r1:HEAD
按相反顺序打印,而
-v
则打印出将回答您问题的副本信息。到
头部的管道
仅将输出限制在前10行,足够:

$ svn log -v -r1:HEAD --stopy-on-copy $REPO/branches/1.3 | head
------------------------------------------------------------------------
r160215 | dweintraub | 2013-04-23 13:42:54 -0400 (Tue, 23 Apr 2013) | 2 lines
Changed paths:
   A /branches/1.3 (from /trunk:160214)

Created branch from Trunk

------------------------------------------------------------------------
r160325 | rrandive | 2013-04-25 08:03:14 -0400 (Thu, 25 Apr 2013) | 1 line
从这里,您可以看到1.3分支的第一个版本是修订版160215,它是从trunk的修订版160214复制的。这将为您提供比较的基础。我知道有些人制作一个分支点标记,然后从该分支点标记进行分支:

这为他们提供了一种标准方法来比较分支上的所有更改与分支点处的主干上的所有更改:

$ svn diff --summarize $REPO/branch_point/2.4 $REPO/trunk  #Changes on trunk since branch
$ svn diff --summarize $REPO/branch_point/2.4 REPO/branches/2.4 #Changes on the branch
这样,您就不必一直返回到
svn日志
来找出更改列表。请记住,
主干
分支
、和
标记
都是惯例。您可以定义自己的,也可以添加到其中。例如,您可能有一个
jenkins\u builds
标记您的jenkins构建。想象一下,如果Jenkins在成功构建后执行此操作:

$ svn cp $REPO/trunk $REPO/jenkins_build/$BUILD_NUMBER
这使得在构建之间很容易区分:

$ svn diff $REPO/jenkins_build/12 $REPO/jenkins_build/56
或者,将特定Jenkins构建标记为发行版:

$ svn cp $REPO/jenkins_build/33 $REPO/tags/2.3

谢谢,大卫。
svn log…
命令允许确定分支所基于的中继的版本。我不想使用
svn cp
命令创建新的分支修订版,因为我只想将文件复制到本地驱动器。所以我使用了svn co$REPO/trunk@734trunk734(其中734是我需要的特定修订号)来获取文件。现在我把它们放到了一个本地驱动器上,我可以和BC进行比较了。谢谢,大卫。
svn log…
命令允许确定分支所基于的中继的版本。我不想使用
svn cp
命令创建新的分支修订版,因为我只想将文件复制到本地驱动器。所以我使用了svn co$REPO/trunk@734trunk734(其中734是我需要的特定修订号)来获取文件。现在我把它们放到了本地驱动器上,我可以和BC进行比较了。谢谢,gbjbaanb。设置“配置中的正确命令”的链接非常有用。谢谢,gbjbaanb。设置“配置中的正确命令”的链接非常有用。