2010-12-03 39 views
5

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

但我们遇到了一个问题。有一天,两位开发者推了两个变更集。为了将其推送到服务器,他们合并了所有更改并推送到服务器。一切都很好,但之后我们不能将Mercurial存储库中的更改推送到SVN。我们得到错误:

abort:对不起,无法找到合并版本的svn父级。

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

任何帮助将是非常有益的, 感谢

回答

5

水银专门hgsubversion可以是一个很好的客户颠覆。如何说,有必须遵守的限制。

的好处是,你可以

1)请多次提交你的善变回购,再把所有这些变化为单修订Subversion版本库

坏事是,你仍然没有各种mercurial repository之间的交换自由

1)如果不使用subversion作为中介,你不能交换更改。

当我们有一个预先存在的subversion版本库时,我使用hgsubversion,并且我们希望移动到Mercurial而不会丢失subbersion repo中包含的所有历史记录。

如果你想继续使用,你必须遵守一定的约束条件。见参考文献2.下面。

参考文献:

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