对于开发,我们使用Mercurial存储库作为SVN repo的包装器,以便在项目中进行代码审查。一切正常:开发人员正在进行更改并将自己的更改提交到Mercurial存储库,项目的团队负责人有时会将更改从mercurial服务器存储库推送到SVN服务器存储库。
但我们遇到了一个问题。有一天,两个开发人员推动了两个变更集。为了将其推送到服务器,他们合并了所有更改并推送到服务器。一切都很好,但在此之后我们无法将Mercurial存储库的更改推送到SVN。我们收到了错误:
abort:抱歉,找不到合并修订版的svn父版。
合并变更集有两个已合并的父项,看起来它是正确的,但我不能进入svn之后,不明白为什么SVN找不到父。
任何帮助都会非常有帮助, 感谢
答案 0 :(得分:5)
Mercurial特别是hgsubversion可以成为Subversion的一个非常好的客户端。然而,说有必须遵守的限制。
好的是,你可以
1)对您的mercurial repo进行多次提交,并将所有这些更改作为单个修订推送到Subversion存储库
不好的是,你仍然没有各种mercurial存储库之间的交换自由
1)如果不使用subversion作为中介,则无法交换更改。
大多数情况下,当我们有一个预先存在的subversion存储库时,我会使用hgsubversion ,我们希望转移到Mercurial而不会丢失subbersion repo中包含的所有历史记录。
如果要继续使用,则必须遵守某些约束条件。参见参考文献2.下面。
参考文献: