【问题标题】:How do I push only my first X local commits to SVN using hgsubversion?如何使用 hgsubversion 仅将我的第一个 X 本地提交推送到 SVN?
【发布时间】:2011-04-20 17:34:52
【问题描述】:

我目前在一个项目上使用 hgsubversion 来享受本地提交的好处,而该项目的官方 SCM 是 Subversion。为了将本地提交推送到 SVN 存储库,我一直在使用 hg rebase --svn,然后是一个简单的 hg push,到目前为止取得了成功。

我遇到的一个小问题是,如果我对想要推动的某件事有特定的修复,而不推动其他一切,我认为我可以提交该修复并然后推它。但这给了我以下信息:

abort:未完成的未提交更改

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

所以这就是我所做的。但后来我看到hg push 可以采用-r 标志,根据帮助文档,该标志具有以下效果:

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

太棒了!所以这听起来正是我想要的。现在说我最近的两个本地提交的修订号为 94 和 95。我想我可以做 hg push -r 94 并且只将 first 提交推送到 SVN,而第二个仍然是纯本地提交。但由于某种原因,这推动了 94 和 95。

我做错了什么?

【问题讨论】:

标签: svn mercurial hgsubversion


【解决方案1】:

假设您启用了 mq 扩展:

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

【讨论】:

    【解决方案2】:

    我对 Hg 不太熟悉,但这是你可以做的:

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

    【讨论】:

    • 谢谢,下次我一定要试试这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2010-10-10
    • 2021-12-29
    • 2011-03-13
    相关资源
    最近更新 更多