在Mercurial中创建补丁的过程如下:
使用qnew创建补丁 - >进行更改 - >刷新补丁
如果我已经进行了(未经修改的)更改并且我想将它们添加到队列中该怎么办?
答案 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正确地指出我对当前的默认行为有误!