Mercurial 队列:如何有效地重新排序补丁

Mercurial Queues: How to reorder patches efficiently

假设我的 mercurial 队列中有以下补丁:

$ hg qser -v
 0 A p1
 1 A p2
 2 A p3-StupidPatch
 3 A p4
 5 A p6
 ...
15 A p15

现在假设我要做的是重新排序补丁,使 p3-Stupid 补丁成为最后一个补丁。即:

$ hg qser -v
 0 A p1
 1 A p2
 2 A p4
 3 A p6
 ...
14 A p15
15 A p3-StupidPatch

我知道我可以这样做:

$ # Pop patches until p2
$ hg qpop p2
$
$ hg qser -v
 0 A p1
 1 A p2
 2 U p3-StupidPatch
 3 U p4
 5 U p6
 ...
15 U p15
$
$ # Push patches one by one
$ hg qpush --move  p4
$ hg qpush --move p5
$ hg qpush --move p6
$ hg qpush --move p7
$ hg qpush --move p8
$ hg qpush --move p9
$ hg qpush --move p10
$ hg qpush --move p11
$ hg qpush --move p12
$ hg qpush --move p13
$ hg qpush --move p14
$ hg qpush --move p15
$ hg qpush --move p3-StupidPatch

有更好的方法吗?

您可以取消应用所有补丁并更改文件中的顺序 .hg/patches/series。那才是真正存储订单的地方。

您可以使用 hgtk log 像这样重新排序补丁: