在创建分支的主干中查找修订


67

我试图将最新的更改从主干合并到项目的一个分支中,但是问题是我不知道我最终从哪个分支创建了分支。我认为SVN会将其记录在某个地方。有人知道如何找到修订版本号吗?

(换句话说,Subversion等效于git merge-base master branch-name


1
如果您使用的是svn 1.5或更高版本,则无需知道此修订号即可进行合并。svn merge ^/trunk .会自己解决的。如果那没有发生,那么您可能必须进入svnadmin upgrade存储库。
慢狗

嗯... Subclipse要求开始修订,我必须看看它是否可以这种方式进行合并
Andy

@slowdog是指服务器的版本,对吗?
在线

Answers:


76

在命令行中,--stop-on-copy标志可用于帮助您显示从何处复制分支的位置:

svn log --stop-on-copy --verbose --limit 1 -r0:HEAD ^/branches/feature

feature您的分支的名称在哪里)

的最后一行将说出这样的内容:

Changed paths:
   A /branches/feature (from /trunk:1234)

啊,男人。我希望有一个“停止N份”选项!将必须手动遍历它们。谢谢!
安迪

我认为svn动作将被当作“副本” ...因为它是一个副本并在一枪中删除。因此,如果您创建了一个分支,然后对其进行重命名(如在tortoise命令中进行重命名以进行重命名),它将抛出“该分支何时开始?数据。我之所以仅提及这一点,是因为“重命名”听起来不像“创建”……很遗憾,我是很难学到的。
granadaCoder

1
混帐相当于这是这么多的逻辑...... git merge-base master feature-branch。它非常适合脚本编写。
安迪

1
必须添加--verbose才能使用当前的TortoiseSVN svn命令行工具实际看到更改的路径
Tono Wiedermann 19/12/16

18

也许有点晚了。

如果您当前在分支机构中,则可以运行:

svn log -r 1:HEAD --limit 1 --stop-on-copy

它显示分支的第一个修订版,即创建时的版本。


1
这是正确的答案。它没有列出数千个无用的修订,仅列出了最后一个。
bobbogo

3
我建议将-v选项添加到上述命令中,以便您也可以获取(from path:rev)消息。
Brian Stormont

@perkrlsn是否有一条命令可以在此之前仅显示主干中的修订?
安迪

13

您正在使用TortoiseSvn还是命令行?

命令行:svn log --stop-on-copy然后查看最小的转速。

乌龟SVN: right-click, tortoise-svn, show log, make sure 'stop on copy' is *checked* and press refresh. Scroll to the bottom and find the smallest rev number. 在此处输入图片说明


实际上我在使用Subclipse
Andy

1
不完全正确。创建分支时,可以指定分支基于哪个修订版(使用-r)-例如。svn copy -r 1234 svn://foo.com/trunk svn://foo.com/branches/b1。基本修订版本不一定与分支创建时的版本相同。@richq的答案显示了如何正确获取它。
有害2015年

2

如果您曾经svn copy创建过一个tag/branch,那么svn log可以告诉您分支中的内容是从哪里复制的。例如,假设svn://svn/trunk/foo我们已经创建了一个branch svn://svn/branches/super_foo。运行svn log -v svn://svn/branches/super_foo,它将告诉您类似-的信息/branches/super_foo from /trunk/foo:22890,这意味着您已经将trunk的修订22890复制到了分支中。


0

对于Cornerstone应用程序,要查看标签或分支的起源,请在时间轴中查看。


0

要使用当前的TortoiseSVN命令行工具查看更改的路径并查询回购而无需本地签出,请从任何目录运行此文件

svn log --stop-on-copy --limit 1 --verbose -r0:HEAD "http://server:9876/svn/reponame/branches/branch name"

注意--verbose实际显示更改的路径和明确的回购/分支URL,以避免不得不签出

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.