Dev 1 Local --+--> Mercurial --+--> Subversion
Dev 2 Local --+ +
Dev 3 Local --+ +
Dev 4 -------------------------+
我一直在测试这个,但是当我从我的本地仓库将更改推送到中间的Mercurial仓库,然后再上传到我们的Subversion仓库时,我遇到了一个问题。
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/01.png
在我的本地机器上,我有一个已提交并准备好被推送到我们的中间Mercurial仓库的changeset。 在这里,您可以看到它是修订版#2263,哈希值为625...
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/02.png
我只将此changeset推送到远程仓库。
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/03.png
到目前为止,一切看起来都很好。 changeset已经被推送了。
hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
我现在切换到远程代码仓库,并更新本地工作目录。
hg push
pushing to svn://...
searching for changes
[r3834] bmurphy: database namespace
pulled 1 revisions
saving bundle to /srv/hg/repository/.hg/strip-backup/62539f8df3b2-temp
adding branch
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
rebase completed
接下来,我将更改推送到Subversion,效果很好。此时,更改已经在Subversion存储库中,我将注意力转回本地客户端。
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/04.png
我将更改拉到本地计算机上。什么?现在我有了两个变更集。我的原始变更集现在显示为本地分支。
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/05.png
另一个变更集具有新的修订号2264和新的哈希值10c1...
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/06.png
无论如何,我将本地存储库更新到新的修订版本。
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/07.png
现在我已经切换过去了。
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/08.png
所以,我最终点击了“确定并标记输出变更集”,正如你所看到的Mercurial仍然想要推送我的先前变更集,即使它们已经被推送了。显然,我做错了什么。
我也无法合并这两个修订版本。如果我在本地机器上合并这两个修订版本,我最终会得到一个“合并”提交。当我将该合并提交推送到中间的Mercurial存储库时,我无法再将更改推出到我们的Subversion存储库。我最终遇到以下问题:
hg update
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
hg push
pushing to svn://...
searching for changes
abort: Sorry, can't find svn parent of a merge revision.
我必须回滚合并以返回工作状态。
我错过了什么?