hgbook

annotate en/appB-mq-ref.xml @ 651:c15e039d98b8

appB-mq-ref.xml: Typo fix
author Dongsheng Song <dongsheng.song@gmail.com>
date Fri Mar 20 16:50:51 2009 +0800 (2009-03-20)
parents 7e7c47481e4f
children 1c13ed2130a7
rev   line source
bos@559 1 <!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
bos@559 2
dongsheng@625 3 <appendix id="chap.mqref">
bos@572 4 <?dbhtml filename="mercurial-queues-reference.html"?>
bos@559 5 <title>Mercurial Queues reference</title>
bos@559 6
dongsheng@625 7 <sect1 id="sec.mqref.cmdref">
bos@559 8 <title>MQ command reference</title>
bos@559 9
dongsheng@650 10 <para id="x_5e8">For an overview of the commands provided by MQ, use the
bos@559 11 command <command role="hg-cmd">hg help mq</command>.</para>
bos@559 12
bos@559 13 <sect2>
bos@559 14 <title><command role="hg-ext-mq">qapplied</command>&emdash;print
bos@559 15 applied patches</title>
bos@559 16
dongsheng@650 17 <para id="x_5e9">The <command role="hg-ext-mq">qapplied</command> command
bos@559 18 prints the current stack of applied patches. Patches are
bos@559 19 printed in oldest-to-newest order, so the last patch in the
bos@559 20 list is the <quote>top</quote> patch.</para>
bos@559 21
bos@559 22 </sect2>
bos@559 23 <sect2>
bos@559 24 <title><command role="hg-ext-mq">qcommit</command>&emdash;commit
bos@559 25 changes in the queue repository</title>
bos@559 26
dongsheng@650 27 <para id="x_5ea">The <command role="hg-ext-mq">qcommit</command> command
bos@559 28 commits any outstanding changes in the <filename
bos@559 29 role="special" class="directory">.hg/patches</filename>
bos@559 30 repository. This command only works if the <filename
bos@559 31 role="special" class="directory">.hg/patches</filename>
bos@559 32 directory is a repository, i.e. you created the directory
bos@559 33 using <command role="hg-cmd">hg qinit <option
bos@559 34 role="hg-ext-mq-cmd-qinit-opt">-c</option></command> or
bos@559 35 ran <command role="hg-cmd">hg init</command> in the directory
bos@559 36 after running <command
bos@559 37 role="hg-ext-mq">qinit</command>.</para>
bos@559 38
dongsheng@650 39 <para id="x_5eb">This command is shorthand for <command role="hg-cmd">hg
bos@559 40 commit --cwd .hg/patches</command>.</para>
bos@580 41 </sect2>
bos@580 42 <sect2>
bos@580 43 <title><command
bos@559 44 role="hg-ext-mq">qdelete</command>&emdash;delete a patch
bos@559 45 from the <filename role="special">series</filename>
dongsheng@651 46 file</title>
bos@559 47
dongsheng@650 48 <para id="x_5ec">The <command role="hg-ext-mq">qdelete</command> command
bos@559 49 removes the entry for a patch from the <filename
bos@559 50 role="special">series</filename> file in the <filename
bos@559 51 role="special" class="directory">.hg/patches</filename>
bos@559 52 directory. It does not pop the patch if the patch is already
bos@559 53 applied. By default, it does not delete the patch file; use
bos@559 54 the <option role="hg-ext-mq-cmd-qdel-opt">-f</option> option
bos@559 55 to do that.</para>
bos@559 56
dongsheng@650 57 <para id="x_5ed">Options:</para>
dongsheng@650 58 <itemizedlist>
dongsheng@650 59 <listitem><para id="x_5ee"><option
bos@559 60 role="hg-ext-mq-cmd-qdel-opt">-f</option>: Delete the
bos@559 61 patch file.</para>
bos@559 62 </listitem></itemizedlist>
bos@559 63
bos@559 64 </sect2>
bos@559 65 <sect2>
bos@559 66 <title><command role="hg-ext-mq">qdiff</command>&emdash;print a
bos@559 67 diff of the topmost applied patch</title>
bos@559 68
dongsheng@650 69 <para id="x_5ef">The <command role="hg-ext-mq">qdiff</command> command
bos@559 70 prints a diff of the topmost applied patch. It is equivalent
bos@559 71 to <command role="hg-cmd">hg diff -r-2:-1</command>.</para>
bos@559 72
bos@559 73 </sect2>
bos@559 74 <sect2>
bos@559 75 <title><command role="hg-ext-mq">qfold</command>&emdash;merge
bos@559 76 (<quote>fold</quote>) several patches into one</title>
bos@559 77
dongsheng@650 78 <para id="x_5f0">The <command role="hg-ext-mq">qfold</command> command
bos@559 79 merges multiple patches into the topmost applied patch, so
bos@559 80 that the topmost applied patch makes the union of all of the
bos@559 81 changes in the patches in question.</para>
bos@559 82
dongsheng@650 83 <para id="x_5f1">The patches to fold must not be applied; <command
bos@559 84 role="hg-ext-mq">qfold</command> will exit with an error if
bos@559 85 any is. The order in which patches are folded is significant;
bos@559 86 <command role="hg-cmd">hg qfold a b</command> means
bos@559 87 <quote>apply the current topmost patch, followed by
bos@559 88 <literal>a</literal>, followed by
bos@559 89 <literal>b</literal></quote>.</para>
bos@559 90
dongsheng@650 91 <para id="x_5f2">The comments from the folded patches are appended to the
bos@559 92 comments of the destination patch, with each block of comments
bos@559 93 separated by three asterisk
bos@559 94 (<quote><literal>*</literal></quote>) characters. Use the
bos@559 95 <option role="hg-ext-mq-cmd-qfold-opt">-e</option> option to
bos@559 96 edit the commit message for the combined patch/changeset after
bos@559 97 the folding has completed.</para>
bos@559 98
dongsheng@650 99 <para id="x_5f3">Options:</para>
dongsheng@650 100 <itemizedlist>
dongsheng@650 101 <listitem><para id="x_5f4"><option
bos@559 102 role="hg-ext-mq-cmd-qfold-opt">-e</option>: Edit the
bos@559 103 commit message and patch description for the newly folded
bos@559 104 patch.</para>
bos@559 105 </listitem>
dongsheng@650 106 <listitem><para id="x_5f5"><option
bos@559 107 role="hg-ext-mq-cmd-qfold-opt">-l</option>: Use the
bos@559 108 contents of the given file as the new commit message and
bos@559 109 patch description for the folded patch.</para>
bos@559 110 </listitem>
dongsheng@650 111 <listitem><para id="x_5f6"><option
bos@559 112 role="hg-ext-mq-cmd-qfold-opt">-m</option>: Use the
bos@559 113 given text as the new commit message and patch description
bos@559 114 for the folded patch.</para>
bos@559 115 </listitem></itemizedlist>
bos@559 116
bos@559 117 </sect2>
bos@559 118 <sect2>
bos@559 119 <title><command
bos@559 120 role="hg-ext-mq">qheader</command>&emdash;display the
bos@559 121 header/description of a patch</title>
bos@559 122
dongsheng@650 123 <para id="x_5f7">The <command role="hg-ext-mq">qheader</command> command
bos@559 124 prints the header, or description, of a patch. By default, it
bos@559 125 prints the header of the topmost applied patch. Given an
bos@559 126 argument, it prints the header of the named patch.</para>
bos@559 127
bos@559 128 </sect2>
bos@559 129 <sect2>
bos@559 130 <title><command role="hg-ext-mq">qimport</command>&emdash;import
bos@559 131 a third-party patch into the queue</title>
bos@559 132
dongsheng@650 133 <para id="x_5f8">The <command role="hg-ext-mq">qimport</command> command
bos@559 134 adds an entry for an external patch to the <filename
bos@559 135 role="special">series</filename> file, and copies the patch
bos@559 136 into the <filename role="special"
bos@559 137 class="directory">.hg/patches</filename> directory. It adds
bos@559 138 the entry immediately after the topmost applied patch, but
bos@559 139 does not push the patch.</para>
bos@559 140
dongsheng@650 141 <para id="x_5f9">If the <filename role="special"
bos@559 142 class="directory">.hg/patches</filename> directory is a
bos@559 143 repository, <command role="hg-ext-mq">qimport</command>
bos@559 144 automatically does an <command role="hg-cmd">hg add</command>
bos@559 145 of the imported patch.</para>
bos@559 146
bos@559 147 </sect2>
bos@559 148 <sect2>
bos@559 149 <title><command role="hg-ext-mq">qinit</command>&emdash;prepare
bos@559 150 a repository to work with MQ</title>
bos@559 151
dongsheng@650 152 <para id="x_5fa">The <command role="hg-ext-mq">qinit</command> command
bos@559 153 prepares a repository to work with MQ. It creates a directory
bos@559 154 called <filename role="special"
bos@559 155 class="directory">.hg/patches</filename>.</para>
bos@559 156
dongsheng@650 157 <para id="x_5fb">Options:</para>
dongsheng@650 158 <itemizedlist>
dongsheng@650 159 <listitem><para id="x_5fc"><option
bos@559 160 role="hg-ext-mq-cmd-qinit-opt">-c</option>: Create
bos@559 161 <filename role="special"
bos@559 162 class="directory">.hg/patches</filename> as a repository
bos@559 163 in its own right. Also creates a <filename
bos@559 164 role="special">.hgignore</filename> file that will
bos@559 165 ignore the <filename role="special">status</filename>
bos@559 166 file.</para>
bos@559 167 </listitem></itemizedlist>
bos@559 168
dongsheng@650 169 <para id="x_5fd">When the <filename role="special"
bos@559 170 class="directory">.hg/patches</filename> directory is a
bos@559 171 repository, the <command role="hg-ext-mq">qimport</command>
bos@559 172 and <command role="hg-ext-mq">qnew</command> commands
bos@559 173 automatically <command role="hg-cmd">hg add</command> new
bos@559 174 patches.</para>
bos@559 175
bos@559 176 </sect2>
bos@559 177 <sect2>
bos@559 178 <title><command role="hg-ext-mq">qnew</command>&emdash;create a
bos@559 179 new patch</title>
bos@559 180
dongsheng@650 181 <para id="x_5fe">The <command role="hg-ext-mq">qnew</command> command
bos@559 182 creates a new patch. It takes one mandatory argument, the
bos@559 183 name to use for the patch file. The newly created patch is
bos@559 184 created empty by default. It is added to the <filename
bos@559 185 role="special">series</filename> file after the current
bos@559 186 topmost applied patch, and is immediately pushed on top of
bos@559 187 that patch.</para>
bos@559 188
dongsheng@650 189 <para id="x_5ff">If <command role="hg-ext-mq">qnew</command> finds modified
bos@559 190 files in the working directory, it will refuse to create a new
bos@559 191 patch unless the <option
bos@559 192 role="hg-ext-mq-cmd-qnew-opt">-f</option> option is used
bos@559 193 (see below). This behaviour allows you to <command
bos@559 194 role="hg-ext-mq">qrefresh</command> your topmost applied
bos@559 195 patch before you apply a new patch on top of it.</para>
bos@559 196
dongsheng@650 197 <para id="x_600">Options:</para>
dongsheng@650 198 <itemizedlist>
dongsheng@650 199 <listitem><para id="x_601"><option
bos@559 200 role="hg-ext-mq-cmd-qnew-opt">-f</option>: Create a new
bos@559 201 patch if the contents of the working directory are
bos@559 202 modified. Any outstanding modifications are added to the
bos@559 203 newly created patch, so after this command completes, the
bos@559 204 working directory will no longer be modified.</para>
bos@559 205 </listitem>
dongsheng@650 206 <listitem><para id="x_602"><option
bos@559 207 role="hg-ext-mq-cmd-qnew-opt">-m</option>: Use the given
bos@559 208 text as the commit message. This text will be stored at
bos@559 209 the beginning of the patch file, before the patch
bos@559 210 data.</para>
bos@559 211 </listitem></itemizedlist>
bos@559 212
bos@559 213 </sect2>
bos@559 214 <sect2>
bos@559 215 <title><command role="hg-ext-mq">qnext</command>&emdash;print
bos@559 216 the name of the next patch</title>
bos@559 217
dongsheng@650 218 <para id="x_603">The <command role="hg-ext-mq">qnext</command> command
bos@559 219 prints the name name of the next patch in the <filename
bos@559 220 role="special">series</filename> file after the topmost
bos@559 221 applied patch. This patch will become the topmost applied
bos@559 222 patch if you run <command
bos@559 223 role="hg-ext-mq">qpush</command>.</para>
bos@559 224
bos@559 225 </sect2>
bos@559 226 <sect2>
bos@559 227 <title><command role="hg-ext-mq">qpop</command>&emdash;pop
bos@559 228 patches off the stack</title>
bos@559 229
dongsheng@650 230 <para id="x_604">The <command role="hg-ext-mq">qpop</command> command
bos@559 231 removes applied patches from the top of the stack of applied
bos@559 232 patches. By default, it removes only one patch.</para>
bos@559 233
dongsheng@650 234 <para id="x_605">This command removes the changesets that represent the
bos@559 235 popped patches from the repository, and updates the working
bos@559 236 directory to undo the effects of the patches.</para>
bos@559 237
dongsheng@650 238 <para id="x_606">This command takes an optional argument, which it uses as
bos@559 239 the name or index of the patch to pop to. If given a name, it
bos@559 240 will pop patches until the named patch is the topmost applied
bos@559 241 patch. If given a number, <command
bos@559 242 role="hg-ext-mq">qpop</command> treats the number as an
bos@559 243 index into the entries in the series file, counting from zero
bos@559 244 (empty lines and lines containing only comments do not count).
bos@559 245 It pops patches until the patch identified by the given index
bos@559 246 is the topmost applied patch.</para>
bos@559 247
dongsheng@650 248 <para id="x_607">The <command role="hg-ext-mq">qpop</command> command does
bos@559 249 not read or write patches or the <filename
bos@559 250 role="special">series</filename> file. It is thus safe to
bos@559 251 <command role="hg-ext-mq">qpop</command> a patch that you have
bos@559 252 removed from the <filename role="special">series</filename>
bos@559 253 file, or a patch that you have renamed or deleted entirely.
bos@559 254 In the latter two cases, use the name of the patch as it was
bos@559 255 when you applied it.</para>
bos@559 256
dongsheng@650 257 <para id="x_608">By default, the <command role="hg-ext-mq">qpop</command>
bos@559 258 command will not pop any patches if the working directory has
bos@559 259 been modified. You can override this behaviour using the
bos@559 260 <option role="hg-ext-mq-cmd-qpop-opt">-f</option> option,
bos@559 261 which reverts all modifications in the working
bos@559 262 directory.</para>
bos@559 263
dongsheng@650 264 <para id="x_609">Options:</para>
dongsheng@650 265 <itemizedlist>
dongsheng@650 266 <listitem><para id="x_60a"><option
bos@559 267 role="hg-ext-mq-cmd-qpop-opt">-a</option>: Pop all
bos@559 268 applied patches. This returns the repository to its state
bos@559 269 before you applied any patches.</para>
bos@559 270 </listitem>
dongsheng@650 271 <listitem><para id="x_60b"><option
bos@559 272 role="hg-ext-mq-cmd-qpop-opt">-f</option>: Forcibly
bos@559 273 revert any modifications to the working directory when
bos@559 274 popping.</para>
bos@559 275 </listitem>
dongsheng@650 276 <listitem><para id="x_60c"><option
bos@559 277 role="hg-ext-mq-cmd-qpop-opt">-n</option>: Pop a patch
bos@559 278 from the named queue.</para>
bos@559 279 </listitem></itemizedlist>
bos@559 280
dongsheng@650 281 <para id="x_60d">The <command role="hg-ext-mq">qpop</command> command
bos@559 282 removes one line from the end of the <filename
bos@559 283 role="special">status</filename> file for each patch that it
bos@559 284 pops.</para>
bos@559 285
bos@559 286 </sect2>
bos@559 287 <sect2>
bos@559 288 <title><command role="hg-ext-mq">qprev</command>&emdash;print
bos@559 289 the name of the previous patch</title>
bos@559 290
dongsheng@650 291 <para id="x_60e">The <command role="hg-ext-mq">qprev</command> command
bos@559 292 prints the name of the patch in the <filename
bos@559 293 role="special">series</filename> file that comes before the
bos@559 294 topmost applied patch. This will become the topmost applied
bos@559 295 patch if you run <command
bos@559 296 role="hg-ext-mq">qpop</command>.</para>
bos@559 297
bos@559 298 </sect2>
dongsheng@625 299 <sect2 id="sec.mqref.cmd.qpush">
bos@559 300 <title><command role="hg-ext-mq">qpush</command>&emdash;push
bos@559 301 patches onto the stack</title>
bos@559 302
dongsheng@650 303 <para id="x_60f">The <command role="hg-ext-mq">qpush</command> command adds
bos@559 304 patches onto the applied stack. By default, it adds only one
bos@559 305 patch.</para>
bos@559 306
dongsheng@650 307 <para id="x_610">This command creates a new changeset to represent each
bos@559 308 applied patch, and updates the working directory to apply the
bos@559 309 effects of the patches.</para>
bos@559 310
dongsheng@650 311 <para id="x_611">The default data used when creating a changeset are as
bos@559 312 follows:</para>
bos@559 313 <itemizedlist>
dongsheng@650 314 <listitem><para id="x_612">The commit date and time zone are the current
bos@559 315 date and time zone. Because these data are used to
bos@559 316 compute the identity of a changeset, this means that if
bos@559 317 you <command role="hg-ext-mq">qpop</command> a patch and
bos@559 318 <command role="hg-ext-mq">qpush</command> it again, the
bos@559 319 changeset that you push will have a different identity
bos@559 320 than the changeset you popped.</para>
bos@559 321 </listitem>
dongsheng@650 322 <listitem><para id="x_613">The author is the same as the default used by
bos@559 323 the <command role="hg-cmd">hg commit</command>
bos@559 324 command.</para>
bos@559 325 </listitem>
dongsheng@650 326 <listitem><para id="x_614">The commit message is any text from the patch
bos@559 327 file that comes before the first diff header. If there is
bos@559 328 no such text, a default commit message is used that
bos@559 329 identifies the name of the patch.</para>
bos@559 330 </listitem></itemizedlist>
dongsheng@650 331 <para id="x_615">If a patch contains a Mercurial patch header (XXX add
bos@559 332 link), the information in the patch header overrides these
bos@559 333 defaults.</para>
bos@559 334
dongsheng@650 335 <para id="x_616">Options:</para>
dongsheng@650 336 <itemizedlist>
dongsheng@650 337 <listitem><para id="x_617"><option
bos@559 338 role="hg-ext-mq-cmd-qpush-opt">-a</option>: Push all
bos@559 339 unapplied patches from the <filename
bos@559 340 role="special">series</filename> file until there are
bos@559 341 none left to push.</para>
bos@559 342 </listitem>
dongsheng@650 343 <listitem><para id="x_618"><option
bos@559 344 role="hg-ext-mq-cmd-qpush-opt">-l</option>: Add the name
bos@559 345 of the patch to the end of the commit message.</para>
bos@559 346 </listitem>
dongsheng@650 347 <listitem><para id="x_619"><option
bos@559 348 role="hg-ext-mq-cmd-qpush-opt">-m</option>: If a patch
bos@559 349 fails to apply cleanly, use the entry for the patch in
bos@559 350 another saved queue to compute the parameters for a
bos@559 351 three-way merge, and perform a three-way merge using the
bos@559 352 normal Mercurial merge machinery. Use the resolution of
bos@559 353 the merge as the new patch content.</para>
bos@559 354 </listitem>
dongsheng@650 355 <listitem><para id="x_61a"><option
bos@559 356 role="hg-ext-mq-cmd-qpush-opt">-n</option>: Use the
bos@559 357 named queue if merging while pushing.</para>
bos@559 358 </listitem></itemizedlist>
bos@559 359
dongsheng@650 360 <para id="x_61b">The <command role="hg-ext-mq">qpush</command> command
bos@559 361 reads, but does not modify, the <filename
bos@559 362 role="special">series</filename> file. It appends one line
bos@559 363 to the <command role="hg-cmd">hg status</command> file for
bos@559 364 each patch that it pushes.</para>
bos@559 365
bos@559 366 </sect2>
bos@559 367 <sect2>
bos@559 368 <title><command
bos@559 369 role="hg-ext-mq">qrefresh</command>&emdash;update the
bos@559 370 topmost applied patch</title>
bos@559 371
dongsheng@650 372 <para id="x_61c">The <command role="hg-ext-mq">qrefresh</command> command
bos@559 373 updates the topmost applied patch. It modifies the patch,
bos@559 374 removes the old changeset that represented the patch, and
bos@559 375 creates a new changeset to represent the modified
bos@559 376 patch.</para>
bos@559 377
dongsheng@650 378 <para id="x_61d">The <command role="hg-ext-mq">qrefresh</command> command
bos@559 379 looks for the following modifications:</para>
bos@559 380 <itemizedlist>
dongsheng@650 381 <listitem><para id="x_61e">Changes to the commit message, i.e. the text
bos@559 382 before the first diff header in the patch file, are
bos@559 383 reflected in the new changeset that represents the
bos@559 384 patch.</para>
bos@559 385 </listitem>
dongsheng@650 386 <listitem><para id="x_61f">Modifications to tracked files in the working
bos@559 387 directory are added to the patch.</para>
bos@559 388 </listitem>
dongsheng@650 389 <listitem><para id="x_620">Changes to the files tracked using <command
bos@559 390 role="hg-cmd">hg add</command>, <command
bos@559 391 role="hg-cmd">hg copy</command>, <command
bos@559 392 role="hg-cmd">hg remove</command>, or <command
bos@559 393 role="hg-cmd">hg rename</command>. Added files and copy
bos@559 394 and rename destinations are added to the patch, while
bos@559 395 removed files and rename sources are removed.</para>
bos@559 396 </listitem></itemizedlist>
bos@559 397
dongsheng@650 398 <para id="x_621">Even if <command role="hg-ext-mq">qrefresh</command>
bos@559 399 detects no changes, it still recreates the changeset that
bos@559 400 represents the patch. This causes the identity of the
bos@559 401 changeset to differ from the previous changeset that
bos@559 402 identified the patch.</para>
bos@559 403
dongsheng@650 404 <para id="x_622">Options:</para>
dongsheng@650 405 <itemizedlist>
dongsheng@650 406 <listitem><para id="x_623"><option
bos@559 407 role="hg-ext-mq-cmd-qrefresh-opt">-e</option>: Modify
bos@559 408 the commit and patch description, using the preferred text
bos@559 409 editor.</para>
bos@559 410 </listitem>
dongsheng@650 411 <listitem><para id="x_624"><option
bos@559 412 role="hg-ext-mq-cmd-qrefresh-opt">-m</option>: Modify
bos@559 413 the commit message and patch description, using the given
bos@559 414 text.</para>
bos@559 415 </listitem>
dongsheng@650 416 <listitem><para id="x_625"><option
bos@559 417 role="hg-ext-mq-cmd-qrefresh-opt">-l</option>: Modify
bos@559 418 the commit message and patch description, using text from
bos@559 419 the given file.</para>
bos@559 420 </listitem></itemizedlist>
bos@559 421
bos@559 422 </sect2>
bos@559 423 <sect2>
bos@559 424 <title><command role="hg-ext-mq">qrename</command>&emdash;rename
bos@559 425 a patch</title>
bos@559 426
dongsheng@650 427 <para id="x_626">The <command role="hg-ext-mq">qrename</command> command
bos@559 428 renames a patch, and changes the entry for the patch in the
bos@559 429 <filename role="special">series</filename> file.</para>
bos@559 430
dongsheng@650 431 <para id="x_627">With a single argument, <command
bos@559 432 role="hg-ext-mq">qrename</command> renames the topmost
bos@559 433 applied patch. With two arguments, it renames its first
bos@559 434 argument to its second.</para>
bos@559 435
bos@559 436 </sect2>
bos@559 437 <sect2>
bos@559 438 <title><command
bos@559 439 role="hg-ext-mq">qrestore</command>&emdash;restore saved
bos@559 440 queue state</title>
bos@559 441
dongsheng@650 442 <para id="x_628">XXX No idea what this does.</para>
bos@559 443
bos@559 444 </sect2>
bos@559 445 <sect2>
bos@559 446 <title><command role="hg-ext-mq">qsave</command>&emdash;save
bos@559 447 current queue state</title>
bos@559 448
dongsheng@650 449 <para id="x_629">XXX Likewise.</para>
bos@559 450
bos@559 451 </sect2>
bos@559 452 <sect2>
bos@559 453 <title><command role="hg-ext-mq">qseries</command>&emdash;print
bos@559 454 the entire patch series</title>
bos@559 455
dongsheng@650 456 <para id="x_62a">The <command role="hg-ext-mq">qseries</command> command
bos@559 457 prints the entire patch series from the <filename
bos@559 458 role="special">series</filename> file. It prints only patch
bos@559 459 names, not empty lines or comments. It prints in order from
bos@559 460 first to be applied to last.</para>
bos@559 461
bos@559 462 </sect2>
bos@559 463 <sect2>
bos@559 464 <title><command role="hg-ext-mq">qtop</command>&emdash;print the
bos@559 465 name of the current patch</title>
bos@559 466
dongsheng@650 467 <para id="x_62b">The <command role="hg-ext-mq">qtop</command> prints the
bos@559 468 name of the topmost currently applied patch.</para>
bos@559 469
bos@559 470 </sect2>
bos@559 471 <sect2>
bos@559 472 <title><command
bos@559 473 role="hg-ext-mq">qunapplied</command>&emdash;print patches
bos@559 474 not yet applied</title>
bos@559 475
dongsheng@650 476 <para id="x_62c">The <command role="hg-ext-mq">qunapplied</command> command
bos@559 477 prints the names of patches from the <filename
bos@559 478 role="special">series</filename> file that are not yet
bos@559 479 applied. It prints them in order from the next patch that
bos@559 480 will be pushed to the last.</para>
bos@559 481
bos@559 482 </sect2>
bos@559 483 <sect2>
bos@559 484 <title><command role="hg-cmd">hg strip</command>&emdash;remove a
bos@559 485 revision and descendants</title>
bos@559 486
dongsheng@650 487 <para id="x_62d">The <command role="hg-cmd">hg strip</command> command
bos@559 488 removes a revision, and all of its descendants, from the
bos@559 489 repository. It undoes the effects of the removed revisions
bos@559 490 from the repository, and updates the working directory to the
bos@559 491 first parent of the removed revision.</para>
bos@559 492
dongsheng@650 493 <para id="x_62e">The <command role="hg-cmd">hg strip</command> command
bos@559 494 saves a backup of the removed changesets in a bundle, so that
bos@559 495 they can be reapplied if removed in error.</para>
bos@559 496
dongsheng@650 497 <para id="x_62f">Options:</para>
dongsheng@650 498 <itemizedlist>
dongsheng@650 499 <listitem><para id="x_630"><option role="hg-opt-strip">-b</option>: Save
bos@559 500 unrelated changesets that are intermixed with the stripped
bos@559 501 changesets in the backup bundle.</para>
bos@559 502 </listitem>
dongsheng@650 503 <listitem><para id="x_631"><option role="hg-opt-strip">-f</option>: If a
bos@559 504 branch has multiple heads, remove all heads. XXX This
bos@559 505 should be renamed, and use <literal>-f</literal> to strip
bos@559 506 revs when there are pending changes.</para>
bos@559 507 </listitem>
dongsheng@650 508 <listitem><para id="x_632"><option role="hg-opt-strip">-n</option>: Do
bos@559 509 not save a backup bundle.</para>
bos@559 510 </listitem></itemizedlist>
bos@559 511
bos@559 512 </sect2>
bos@559 513 </sect1>
bos@559 514 <sect1>
bos@559 515 <title>MQ file reference</title>
bos@559 516
bos@559 517 <sect2>
bos@559 518 <title>The <filename role="special">series</filename>
bos@559 519 file</title>
bos@559 520
dongsheng@650 521 <para id="x_633">The <filename role="special">series</filename> file
bos@559 522 contains a list of the names of all patches that MQ can apply.
bos@559 523 It is represented as a list of names, with one name saved per
bos@559 524 line. Leading and trailing white space in each line are
bos@559 525 ignored.</para>
bos@559 526
dongsheng@650 527 <para id="x_634">Lines may contain comments. A comment begins with the
bos@559 528 <quote><literal>#</literal></quote> character, and extends to
bos@559 529 the end of the line. Empty lines, and lines that contain only
bos@559 530 comments, are ignored.</para>
bos@559 531
dongsheng@650 532 <para id="x_635">You will often need to edit the <filename
bos@559 533 role="special">series</filename> file by hand, hence the
bos@559 534 support for comments and empty lines noted above. For
bos@559 535 example, you can comment out a patch temporarily, and <command
bos@559 536 role="hg-ext-mq">qpush</command> will skip over that patch
bos@559 537 when applying patches. You can also change the order in which
bos@559 538 patches are applied by reordering their entries in the
bos@559 539 <filename role="special">series</filename> file.</para>
bos@559 540
dongsheng@650 541 <para id="x_636">Placing the <filename role="special">series</filename>
bos@559 542 file under revision control is also supported; it is a good
bos@559 543 idea to place all of the patches that it refers to under
bos@559 544 revision control, as well. If you create a patch directory
bos@559 545 using the <option role="hg-ext-mq-cmd-qinit-opt">-c</option>
bos@559 546 option to <command role="hg-ext-mq">qinit</command>, this will
bos@559 547 be done for you automatically.</para>
bos@559 548
bos@559 549 </sect2>
bos@559 550 <sect2>
bos@559 551 <title>The <filename role="special">status</filename>
bos@559 552 file</title>
bos@559 553
dongsheng@650 554 <para id="x_637">The <filename role="special">status</filename> file
bos@559 555 contains the names and changeset hashes of all patches that MQ
bos@559 556 currently has applied. Unlike the <filename
bos@559 557 role="special">series</filename> file, this file is not
bos@559 558 intended for editing. You should not place this file under
bos@559 559 revision control, or modify it in any way. It is used by MQ
bos@559 560 strictly for internal book-keeping.</para>
bos@559 561
bos@559 562 </sect2>
bos@559 563 </sect1>
bos@559 564 </appendix>
bos@559 565
bos@559 566 <!--
bos@559 567 local variables:
bos@559 568 sgml-parent-document: ("00book.xml" "book" "appendix")
bos@559 569 end:
bos@559 570 -->