如何查找标记的源分支

时间:2011-01-11 01:25:29

标签: svn

我在subversion中有一个标签,过去已经有一段时间了。我想知道它是从哪个分支创建的。有没有办法做到这一点。我试过了

svn log --stop-on-copy

但是这只给出了修订号,而不是分支路径。我需要分支路径,所以我可以检查出来。任何想法,最好是这里的SVN命令行方法,将不胜感激。

3 个答案:

答案 0 :(得分:19)

svn log -v --stop-on-copy <url-of-the-tag>应该以documented here为您提供此信息。

相关摘录:

In addition to the action codes which precede the changed paths, svn log with the
--verbose (-v) option will note whether a path was added or replaced as the result of 
a copy operation. It does so by printing (from COPY-FROM-PATH:COPY-FROM-REV) after such 
paths.

答案 1 :(得分:10)

直接获得正确的修订:

svn log -v -r0:HEAD --stop-on-copy --limit 1 <url-of-the-tag>

它只会打印创建分支的修订版本:

rxxx | Author | 2013-01-25 11:43:55 +0100 (fri., 2013, jan. 25) | 1 line
Changed paths:
   A /project/branches/branch (from /project/trunk/folder:ryyy)

您正在寻找的修订版和路径是:/project/trunk/folder:ryyy

答案 2 :(得分:0)

这可能有点晚了,但是在开发一些PowerShell脚本时我偶然发现了这一点

如果可以使用PowerShell,则可能会输出直接从中复制标签/分支的路径:

([Xml](svn log -v -r0:HEAD --stop-on-copy --limit 1 URL-HERE --xml)).log.logentry.paths.path.'copyfrom-path'

这里发生了什么? svn命令用--xml标志调用,因此我可以将返回值强制转换为[Xml],这又使我可以访问svn输出的XML节点。