首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理hgsubversion的合并?

如何处理hgsubversion的合并?
EN

Stack Overflow用户
提问于 2010-04-16 20:13:00
回答 3查看 3.4K关注 0票数 7

我正在尝试为一个使用Subversion的项目做贡献。我使用Mercurial及其hgsubversion扩展来克隆存储库。我的工作发生在一个功能分支上。

如何保持特性分支与默认分支(hg语言)或主干(svn语言)上发生的内容保持最新?

因此,我使用hg up feature更新到feature分支,然后使用hg pull,它为我提供了默认分支上的变更集。所以我做了hg merge default,提交了合并,然后尝试hg push将我的变更集发送到Subversion。Mercurial说:“对不起,找不到合并版本的svn父版本。”

EN

回答 3

Stack Overflow用户

发布于 2010-09-09 23:25:17

我终于想出了如何在发生类似问题中描述的事件后将我的存储库解开,这样我就可以继续工作,而不必重新克隆父存储库(当您从Subversion中提取数据时,这显然是一个相当慢的操作!)。如果Subversion的“提示”胜过您,那么您就不能再推了,只需确保在您的Mercurial中通过$HOME/.hgrc行激活了内置的"rebase“扩展:

代码语言:javascript
复制
[extensions]
rebase =

然后,当您的存储库被楔入时,您应该能够运行此命令:

代码语言:javascript
复制
$ hg rebase --svn

如果我理解正确的话,它会溶解你当前从Subversion HEAD中转移出来的分支,并在Mercurial中与Subversion中的HEAD相对应的分支"tip“上重新构建它。从那里,您可以继续工作,并成功地再次推送。到目前为止,它对我一直很有效;如果你遇到任何问题,请告诉我!

票数 5
EN

Stack Overflow用户

发布于 2010-04-16 21:48:11

Mercurial作为几种不同的分支模式:http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

您描述的是“命名分支”,当您使用只能通过mercurial (或hg-git)访问的repo时,这是最流行的。

然而,当你使用hg-subversion来推送来自subversion的更改时,你最好将所有mercurial更改保存在“默认”命名的分支中,并使用“克隆和分支”模式(我无论如何都更喜欢)。

具体地说,message Sorry, can't find svn parent of a merge revision.不是subversion中直接匹配修订版的后代。

如果我是你,我会从svn重新克隆,然后使用‘移植’命令(打包的扩展)将我的工作转移到存储库的‘默认’分支中。如果你想要多个特性并行w/ hg-subversion使用单独的克隆(它们非常便宜),因为它更符合subversion对分支的思考方式。

票数 1
EN

Stack Overflow用户

发布于 2010-05-08 00:12:14

我需要自己解决这个问题,并把它写在这里:

http://notebook.3gfp.com/2010/05/pushing-a-new-feature-from-a-mercurial-repo-into-an-svn-repo/

我还没有弄清楚如何在subversion中关闭分支并使mercurial图看起来正确。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2652782

复制
相关文章

相似问题

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