使用Mercurial队列将未提交的更改添加到新的修补程序中

时间:2010-10-04 23:24:17

标签: mercurial mercurial-queue

在Mercurial中创建补丁的过程如下:

使用qnew创建补丁 - >进行更改 - >刷新补丁

如果我已经进行了(未经修改的)更改并且我想将它们添加到队列中该怎么办?

2 个答案:

答案 0 :(得分:3)

这取决于您的版本,看起来它在1.5.1中已更改。

1.5.1或更高版本

该命令将默认添加任何未提交的更改

  

qnew在当前应用的补丁(如果有的话)之上创建一个新补丁。       该补丁将在工作中进行任何未完成的更改时进行初始化       。目录

早于1.5.1

您想使用qnew -f。来自docs

  

-f:如果修改了工作目录的内容,则创建一个新的补丁。任何未完成的修改都会添加到新创建的补丁中,因此在此命令完成后,将不再修改工作目录。

答案 1 :(得分:0)

实际上,无论是否存在未提交的更改,修补过程的工作方式都相同。我总是这样做:

[... make changes ...]

hg qnew -m "foo bar changes" foobar.patch
--> new empty patch at top of queue
hg qrefresh
--> this adds all diffs from 'hg diff' into the current top patch
编辑:@CaseBash正确地指出我对当前的默认行为有误!