Mercurial队列:不能提交,也不能qpop

时间:2015-03-19 13:53:42

标签: mercurial mercurial-queue

我已经在现有的工作代码中添加了一些调试内容并制作了mq补丁。 (调试的东西实际上打破了应用程序,但我需要它来调试我添加的功能,这就是为什么我想让一个单元负责更改,补丁就可以了。) 然后我修改了工作代码,现在我想承诺我做了什么。 我们的想法是提交更改,但不提交调试内容。

但它不起作用:

$ hg ci
abort: cannot commit over an applied mq patch
$ hg qpop
abort: local changes found, refresh first
$ hg qseries
debug-stuff
$ hg qapplied
debug-stuff

如何暂时取消应用调试更改并提交有用的更改? (然后我需要重新应用调试更改并继续开发。)

2 个答案:

答案 0 :(得分:0)

$ hg qnew -f a-lot
$ hg qpop -a
// manually editing .hg/patches/series to swap the two patches
$ hg qpush

现在我将更改作为mq补丁,而我想提交它们。

$ hg qapplied
a-lot
$ hg qfinish a-lot
patch a-lot finalized without changeset message
$ hg qapplied
$

现在' hg log'将更改显示为已提交。

我仍然想知道如果没有额外的操作,qfinish是否会完成这项任务。

答案 1 :(得分:0)

  1. “hg shelve”保存您未提交的作品
  2. qpop the patch
  3. “hg unshelve”恢复您的功能
  4. 然后你可以提交这个功能。