Mercurial存储库作为SVN的包装器

时间:2010-12-03 15:32:34

标签: svn mercurial hgsubversion

对于开发,我们使用Mercurial存储库作为SVN repo的包装器,以便在项目中进行代码审查。一切正常:开发人员正在进行更改并将自己的更改提交到Mercurial存储库,项目的团队负责人有时会将更改从mercurial服务器存储库推送到SVN服务器存储库。

但我们遇到了一个问题。有一天,两个开发人员推动了两个变更集。为了将其推送到服务器,他们合并了所有更改并推送到服务器。一切都很好,但在此之后我们无法将Mercurial存储库的更改推送到SVN。我们收到了错误:

abort:抱歉,找不到合并修订版的svn父版。

合并变更集有两个已合并的父项,看起来它是正确的,但我不能进入svn之后,不明白为什么SVN找不到父。

任何帮助都会非常有帮助, 感谢

1 个答案:

答案 0 :(得分:5)

Mercurial特别是hgsubversion可以成为Subversion的一个非常好的客户端。然而,说有必须遵守的限制。

好的是,你可以

1)对您的mercurial repo进行多次提交,并将所有这些更改作为单个修订推送到Subversion存储库

不好的是,你仍然没有各种mercurial存储库之间的交换自由

1)如果不使用subversion作为中介,则无法交换更改。

大多数情况下,当我们有一个预先存在的subversion存储库时,我会使用hgsubversion ,我们希望转移到Mercurial而不会丢失subbersion repo中包含的所有历史记录。

如果要继续使用,则必须遵守某些约束条件。参见参考文献2.下面。

参考文献:

  1. How to handle merges with hgsubversion?
  2. Mercurial to Mercurial to Subversion Workflow Problem