我在subversion中有一个标签,过去已经有一段时间了。我想知道它是从哪个分支创建的。有没有办法做到这一点。我试过了
svn log --stop-on-copy
但是这只给出了修订号,而不是分支路径。我需要分支路径,所以我可以检查出来。任何想法,最好是这里的SVN命令行方法,将不胜感激。
答案 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节点。