Mercurial Queues - 备份和共享未提交的补丁

时间:2012-12-10 07:48:50

标签: mercurial repository patch sharing mercurial-queue

我正在尝试理解如何将我的mercurial补丁推送到远程仓库(比如bitbucket.org),而不必先应用它们(实际提交它们)。我的动机是首先在我的工作最终之前对我的工作进行远程备份,并且还能够与其他人共享这些补丁或者从不同的机器上工作。

我的正常工作流程如下:

$ hg qnew some-feature -m "work on some feature"

... work on some files

$ hg qref

--> bug or other feature request comes along

$ hg qpop some-feature
$ hg qnew new-feature -m "work on different feature"
... work on new stuff
$ hg qref

此时,我想将未完成的,未提交的补丁推送到回购。我已经读过Mercurial队列实际上是如何自己的回购,因此可以像普通的hg repo一样进行操作,但我不清楚工作流程与我正在尝试做什么。我在我的shell中将mq命令别名发送到hg -R $(hg root)/.hg/patches,但我很感激有关人们如何管理远程备份和共享未注释补丁的一些反馈。感谢。

3 个答案:

答案 0 :(得分:2)

在Bitbucket上,您可以创建存储库和修补程序队列。 Bitbucket似乎还没有为补丁队列提供详细的official documentation,但有一个blog post描述了如何使用它们。

要备份/共享未提交的修补程序,基本工作流程命令为:

hg init --mq # initialize .hg/patches as a versioned repository (hereafter referred to as the MQ repository)
# manually configure .hg/patches/.hg/hgrc to contain a [paths] section if desired
hg commit --mq # commit in the MQ repository
hg push --mq # push the MQ repository to default remote
hg pull --mq # pull the MQ repository from default remote
hg update --mq/hg merge --mq # same as normal for hg, but operating on the MQ repository

在早期版本的Mercurial中,hg init --mqhg commit --mq命令以hg qinithg qcommit提供(现已弃用)。

答案 1 :(得分:1)

  • hg push --mq推送MQ中的变更集补丁
  • mqcollab - 在MQ补丁上轻松交流和协作

答案 2 :(得分:1)

您可以在.hg/patches中创建存储库,并将其作为单独的存储库推送。在mercurial的更高版本中,您只需执行hg ci --mq,它将提交最新版本的修补程序存储库。一旦提交,您可以将其克隆到bitbucket。