Mercurial中创建补丁的过程如下:
使用 qnew 创建补丁 -> 进行更改 -> 刷新补丁
如果我已经进行了(未提交的)更改并且我想将它们添加到队列中怎么办?
Mercurial中创建补丁的过程如下:
使用 qnew 创建补丁 -> 进行更改 -> 刷新补丁
如果我已经进行了(未提交的)更改并且我想将它们添加到队列中怎么办?
这取决于您的版本,并且看起来它在 1.5.1 中有所更改。
1.5.1 或更高版本
该命令将默认添加任何未提交的更改
qnew 在当前应用的补丁(如果有的话)之上创建一个新补丁。补丁将使用工作目录中的任何未完成更改进行初始化。
早于 1.5.1
你想用qnew -f
. 从文档:
-f:如果工作目录的内容被修改,则创建一个新补丁。任何未完成的修改都会添加到新创建的补丁中,因此该命令完成后,工作目录将不再被修改。
实际上,无论是否有未提交的更改,补丁过程的工作方式都是一样的。我总是这样做:
[... 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 正确地指出我对当前的默认行为是错误的!