首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVN合并分支从一个回购到其他回购的主干

SVN合并分支从一个回购到其他回购的主干
EN

Stack Overflow用户
提问于 2009-02-24 19:44:19
回答 4查看 4.8K关注 0票数 5

我有两个存储库,分别生活在不同的服务器上,它们被称为回购-1和回购-2。

开始时,两个“树干”是相等的:

回购-1/主干==回购-2/主干

同时,我也在修改和执行对回购-2/躯干的修改。

现在我需要合并从回购-1/主干到回购-2/主干的变化。

我想我应该将repo-1/主干复制到repo-2/ tag /r1_20090224中,然后将该标记合并到我的repo-2/主干的本地工作副本中(即c:\dev\repo2-主干)。

对如何做到这一点有什么建议吗?我试图使用TortoiseSVN并执行“合并两个不同的树”,我使用了以下设置:

出发地:repo-2/主干到:repo-2/tag/r1_20090224工作副本:C:\dev\repo2-主干

我还试着把“从”和“...but”换成“无缘”。通过尝试这两个合并选项中的任何一个,我将得到以下结果:

  1. 如果我从一个主干合并到另一个标签(进入我的回购-2/主干的本地副本),我将丢失我的主干更改并得到标记更改。
  2. 如果我从一个标签合并到另一个主干(进入我的回购-2/主干的本地副本),我就会丢失我的标记更改并保留我的主干更改。

对此有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2009-02-24 19:54:29

首先,找出树木相同的地方的修订。然后将该版本合并到回购-1存储库的主管,并将其合并到您的回购-2工作副本中。

如果要合并r123和r456之间的更改,则使用命令行客户端类似于此

代码语言:javascript
复制
svn merge http://domain.tld/repos1@123 http://domain.tld/repos1@456 repos2-workingcopy
票数 1
EN

Stack Overflow用户

发布于 2009-02-24 19:59:45

还不完全清楚,但您需要从两棵树的底部合并,即两个树干相同的位置。

桑德击败了我,这是他的功劳,但这里还有一些小窍门:

  1. 尽快将这两个存储库连接到一个存储库中;Subversion并不是真正设计成这样的。或者搬到DVCS比如git或集市或者..。
  2. 如果你坚持颠覆,这类事情通常是用分支,而不是标签。标记通常用作标记点,而不是提交给。
票数 1
EN

Stack Overflow用户

发布于 2009-02-24 20:22:45

,如果 svn merge跨两个站点/服务器使您失败:

代码语言:javascript
复制
svn: Unusable URI: it does not refer to this repository

然后使用以下方法:

  1. 确定repo-2开始偏离repo-1__的修订级别,例如123,然后:
  2. svn co http://server1/repo-1/trunk
  3. svn diff -r123:HEAD http://server2/repo-2/trunk >repo2.patches
  4. patch -p0 -i repo2.patches
  5. 筛选任何冲突并解决它们
  6. svn ci --message "merged from repo-2"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/583260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档