author | Thomas Arendsen Hein <thomas@intevation.de> |
Wed, 25 Oct 2006 08:11:17 +0200 | |
changeset 3510 | e1421a77427e |
parent 3464 | ba3a96750de0 |
child 3681 | 05d877dfd33d |
permissions | -rw-r--r-- |
2729 | 1 |
% help |
2 |
mq extension - patch management and development |
|
3 |
||
4 |
This extension lets you work with a stack of patches in a Mercurial |
|
5 |
repository. It manages two stacks of patches - all known patches, and |
|
6 |
applied patches (subset of known patches). |
|
7 |
||
8 |
Known patches are represented as patch files in the .hg/patches |
|
9 |
directory. Applied patches are both patch files and changesets. |
|
10 |
||
11 |
Common tasks (use "hg help command" for more details): |
|
12 |
||
13 |
prepare repository to work with patches qinit |
|
14 |
create new patch qnew |
|
15 |
import existing patch qimport |
|
16 |
||
17 |
print patch series qseries |
|
18 |
print applied patches qapplied |
|
19 |
print name of top applied patch qtop |
|
20 |
||
21 |
add known patch to applied stack qpush |
|
22 |
remove patch from applied stack qpop |
|
23 |
refresh contents of top applied patch qrefresh |
|
24 |
||
25 |
list of commands (use "hg help -v mq" to show aliases and global options): |
|
26 |
||
27 |
qapplied print the patches already applied |
|
28 |
qclone clone main and patch repository at same time |
|
29 |
qcommit commit changes in the queue repository |
|
2910
41f8b041893b
Adjusted test to changed help output.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2852
diff
changeset
|
30 |
qdelete remove patches from queue |
2729 | 31 |
qdiff diff of the current patch |
2748
752b9475a700
New mq command qfold: Merge patches into the current patch.
Brendan Cully <brendan@kublai.com>
parents:
2747
diff
changeset
|
32 |
qfold fold the named patches into the current patch |
2821
2e4ace008c94
mq: new commands qselect, qguard
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2758
diff
changeset
|
33 |
qguard set or print guards for a patch |
2747
0016fc748f61
Add command qheader to display the header of a given patch.
Brendan Cully <brendan@kublai.com>
parents:
2729
diff
changeset
|
34 |
qheader Print the header of the topmost or specified patch |
2729 | 35 |
qimport import a patch |
36 |
qinit init a new queue repository |
|
37 |
qnew create a new patch |
|
38 |
qnext print the name of the next patch |
|
39 |
qpop pop the current patch off the stack |
|
40 |
qprev print the name of the previous patch |
|
41 |
qpush push the next patch onto the stack |
|
42 |
qrefresh update the current patch |
|
2750
8c814c1ab31e
New self-explanatory command qrename.
Brendan Cully <brendan@kublai.com>
parents:
2748
diff
changeset
|
43 |
qrename rename a patch |
2729 | 44 |
qrestore restore the queue state saved by a rev |
45 |
qsave save current queue state |
|
2821
2e4ace008c94
mq: new commands qselect, qguard
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2758
diff
changeset
|
46 |
qselect set or print guarded patches to push |
2729 | 47 |
qseries print the entire series file |
48 |
qtop print the name of the current patch |
|
49 |
qunapplied print the patches not yet applied |
|
50 |
strip strip a revision and all later revs on the same branch |
|
51 |
adding a |
|
2848
307439d6fede
mq: do not allow to push from repo with patches applied
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2846
diff
changeset
|
52 |
1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
2729 | 53 |
adding b/z |
54 |
% qinit |
|
55 |
% -R qinit |
|
56 |
% qinit -c |
|
57 |
A .hgignore |
|
58 |
A series |
|
59 |
% qnew implies add |
|
60 |
A .hgignore |
|
61 |
A series |
|
62 |
A test.patch |
|
63 |
% qnew -m |
|
64 |
foo bar |
|
65 |
% qrefresh |
|
66 |
foo bar |
|
67 |
||
68 |
diff -r xa |
|
69 |
--- a/a |
|
70 |
+++ b/a |
|
71 |
@@ -1,1 +1,2 @@ a |
|
72 |
a |
|
73 |
+a |
|
74 |
% qpop |
|
75 |
Patch queue now empty |
|
76 |
% qpush |
|
77 |
applying test.patch |
|
78 |
Now at: test.patch |
|
79 |
% pop/push outside repo |
|
80 |
Patch queue now empty |
|
81 |
applying test.patch |
|
82 |
Now at: test.patch |
|
83 |
% qrefresh in subdir |
|
84 |
% pop/push -a in subdir |
|
85 |
Patch queue now empty |
|
86 |
applying test.patch |
|
87 |
applying test2.patch |
|
88 |
Now at: test2.patch |
|
89 |
% qseries |
|
90 |
test.patch |
|
91 |
test2.patch |
|
92 |
% qapplied |
|
93 |
test.patch |
|
94 |
test2.patch |
|
95 |
% qtop |
|
96 |
test2.patch |
|
97 |
% qprev |
|
98 |
test.patch |
|
99 |
% qnext |
|
100 |
All patches applied |
|
101 |
% pop, qnext, qprev, qapplied |
|
102 |
Now at: test.patch |
|
103 |
test2.patch |
|
104 |
Only one patch applied |
|
105 |
test.patch |
|
2846
b8d587cfa3bb
mq: test commit in repo with patches applied
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2828
diff
changeset
|
106 |
% commit should fail |
b8d587cfa3bb
mq: test commit in repo with patches applied
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2828
diff
changeset
|
107 |
abort: cannot commit over an applied mq patch |
2848
307439d6fede
mq: do not allow to push from repo with patches applied
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2846
diff
changeset
|
108 |
% push should fail |
307439d6fede
mq: do not allow to push from repo with patches applied
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2846
diff
changeset
|
109 |
pushing to ../../k |
307439d6fede
mq: do not allow to push from repo with patches applied
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2846
diff
changeset
|
110 |
abort: source has mq patches applied |
2729 | 111 |
% qunapplied |
112 |
test2.patch |
|
3081
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
113 |
% qpush/qpop with index |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
114 |
applying test2.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
115 |
Now at: test2.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
116 |
Now at: test.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
117 |
applying test1b.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
118 |
Now at: test1b.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
119 |
applying test2.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
120 |
Now at: test2.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
121 |
Now at: test1b.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
122 |
Now at: test.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
123 |
applying test1b.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
124 |
applying test2.patch |
760414dc7ac6
Added tests for qpush/qpop with index.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3027
diff
changeset
|
125 |
Now at: test2.patch |
2852 | 126 |
% push should succeed |
127 |
Patch queue now empty |
|
128 |
pushing to ../../k |
|
129 |
searching for changes |
|
130 |
adding changesets |
|
131 |
adding manifests |
|
132 |
adding file changes |
|
133 |
added 1 changesets with 1 changes to 1 files |
|
2729 | 134 |
% strip |
135 |
adding x |
|
136 |
0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
137 |
saving bundle to |
|
138 |
adding changesets |
|
139 |
adding manifests |
|
140 |
adding file changes |
|
141 |
added 1 changesets with 1 changes to 1 files |
|
142 |
(run 'hg update' to get a working copy) |
|
3027
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
143 |
% cd b; hg qrefresh |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
144 |
adding a |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
145 |
foo |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
146 |
|
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
147 |
diff -r cb9a9f314b8b a |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
148 |
--- a/a |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
149 |
+++ b/a |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
150 |
@@ -1,1 +1,2 @@ a |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
151 |
a |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
152 |
+a |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
153 |
diff -r cb9a9f314b8b b/f |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
154 |
--- /dev/null |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
155 |
+++ b/b/f |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
156 |
@@ -0,0 +1,1 @@ |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
157 |
+f |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
158 |
% hg qrefresh . |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
159 |
foo |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
160 |
|
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
161 |
diff -r cb9a9f314b8b b/f |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
162 |
--- /dev/null |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
163 |
+++ b/b/f |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
164 |
@@ -0,0 +1,1 @@ |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
165 |
+f |
a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
Brendan Cully <brendan@kublai.com>
parents:
2934
diff
changeset
|
166 |
M a |
3334
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
167 |
% qpush failure |
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
168 |
Patch queue now empty |
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
169 |
applying foo |
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
170 |
applying bar |
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
171 |
1 out of 1 hunk ignored -- saving rejects to file foo.rej |
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
172 |
patch failed, unable to continue (try -v) |
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
173 |
patch failed, rejects left in working dir |
534806df5b5a
Test case for bdiff on buffer objects
Brendan Cully <brendan@kublai.com>
parents:
3081
diff
changeset
|
174 |
Errors during apply, please fix and refresh bar |
3464
ba3a96750de0
mq: test case for issue399
Brendan Cully <brendan@kublai.com>
parents:
3334
diff
changeset
|
175 |
? foo |
ba3a96750de0
mq: test case for issue399
Brendan Cully <brendan@kublai.com>
parents:
3334
diff
changeset
|
176 |
? foo.rej |
2934
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
177 |
new file |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
178 |
|
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
179 |
diff --git a/new b/new |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
180 |
new file mode 100755 |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
181 |
--- /dev/null |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
182 |
+++ b/new |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
183 |
@@ -0,0 +1,1 @@ |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
184 |
+foo |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
185 |
copy file |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
186 |
|
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
187 |
diff --git a/new b/copy |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
188 |
copy from new |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
189 |
copy to copy |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
190 |
Now at: new |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
191 |
applying copy |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
192 |
Now at: copy |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
193 |
diff --git a/new b/copy |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
194 |
copy from new |
2f190e998eb3
Teach mq about git patches
Brendan Cully <brendan@kublai.com>
parents:
2910
diff
changeset
|
195 |
copy to copy |