如何使用hgsubversion仅将我的第一个X本地提交推送到SVN?

时间:2011-04-20 17:34:52

标签: svn mercurial hgsubversion

我目前正在项目中使用hgsubversion来享受本地提交的好处,而项目的官方SCM是Subversion。为了将本地提交推送到SVN回购,我一直在使用hg rebase --svn,后面跟一个简单的hg push,到目前为止已经有了成功的结果。

我遇到的一个小小问题是,如果我对某些我想要推送的东西有一定的修复,而没有推动其他所有内容,我想到我可以提交修复和然后推它。但这给了我以下信息:

  

abort:未完成的未提交更改

好的,好的。所以我搁置了我未提交的更改。但由于某种原因,我无法搁置一个特定的变化(添加了一个新文件)。我想,到底是什么,我可以这样做,因为它不会造成任何伤害。

这就是我的所作所为。但后来我发现hg push可以使用-r标志,根据帮助文档,这会产生这种影响:

  

如果使用-r / - rev,则指定的修订版及其所有祖先将被推送到远程存储库。

大!所以这听起来就像我想要的那样。现在说我的最新两个本地提交被给予修订号94和95.我认为我可以hg push -r 94并且只将第一次提交到SVN,而第二次保持纯粹的本地提交。但出于某种原因,这推动了94和95.

我做错了什么?

2 个答案:

答案 0 :(得分:2)

假设您启用了mq扩展程序:

hg qimport -r95:
hg qpop -a
hg push
hg qpush -a

答案 1 :(得分:1)

我对Hg不太熟悉,但这就是你能做的:

hg up -r 94
hg rebase --svn
hg push --svn