使用Subversion合并两个分支修订版


95

我想合并在http:// url-of-branch-a上的rev 10和HEAD rev之间发生的所有更改,并将它们应用于http:// url-of-branch-b

就像是...

svn merge -r 10:HEAD http://url-of-branch-a 

这可能吗?如果是这样,语法是什么?

我正在从unix命令行运行SVN客户端。SVN客户端版本为1.4

编辑:是的,我的具体解决方案是...

  1. 将目录更改为要接收更改的工作副本的位置(分支b)
  2. svn merge -r 10:HEAD http:// url-of-branch-a

这会将“ branch-a”的更改合并为“ branch-b”


4
您还需要知道何时选择分支。您可以在分支机构中执行此操作(svn log --stop-on-copy。),以获取分支的修订版本号。
jmc 2012年

@jmc,自2008年SVN 1.5发布以来就不再需要此了,AFAIR
bahrep

Answers:


55

检出URLA。使用SVN合并将URL B合并到A的工作副本中。提交A。

反之亦然:)


127

流程如下:

  1. 建立分支B(svn checkout http://branch-b)的工作副本
  2. 将分支A的更改合并到B(svn merge -r 10:HEAD http://branch-a .)的工作副本中
  3. 将工作副本B提交(解决冲突后)到分支b(svn commit

检查手册页(帮助文件)以获取svn合并语义。它向您显示svn merge总是将结果转储到工作副本中。

请查看SVNBook以获取所有详细信息。


您还可以提出一个想法,如何使用Eclipse中的SVN插件吗?
Snehal Masne

这对我有用:svn merge --force --allow-mixed-revisions -r 10:HEAD branch-a
Minh Nguyen

2
为什么我们为HEAD指定修订版10?为什么要使用两个修订版本端点而不是一个修订版本作为快照?“ 10到HEAD”指的是哪个分支?
ahnbizcad

2

merge通过尝试在svn repo中进行操作通常会造成混淆,我们不能直接合并到svn repo,我们可以按照以下步骤合并到本地计算机的工作副本:

  • 该工作副本应该是destination URL合并的(即结帐目的地)。

  • 将工作副本与source URL合并。

  • commit 到目的地。

最佳实践:合并,合并。

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.