Download Mercurial: The Definitive Guide - Compiled from 93154fbaae9b

Transcript
Managing change with Mercurial Queues
2: line 4
Notice that the patch contains the changes in our prior patch as part of its context (you can see this more clearly in the
output of hg annotate).
So far, with the exception of qnew and qrefresh, we've been careful to only use regular Mercurial commands. However,
MQ provides many commands that are easier to use when you are thinking about patches, as illustrated below.
$ hg qseries
first.patch
second.patch
$ hg qapplied
first.patch
second.patch
• The qseries command lists every patch that MQ knows about in this repository, from oldest to newest (most recently
created).
• The qapplied command lists every patch that MQ has applied in this repository, again from oldest to newest (most
recently applied).
12.5.4. Manipulating the patch stack
The previous discussion implied that there must be a difference between “known” and “applied” patches, and there is. MQ
can manage a patch without it being applied in the repository.
An applied patch has a corresponding changeset in the repository, and the effects of the patch and changeset are visible
in the working directory. You can undo the application of a patch using the qpop command. MQ still knows about, or
manages, a popped patch, but the patch no longer has a corresponding changeset in the repository, and the working directory
does not contain the changes made by the patch. Figure 12.1, “Applied and unapplied patches in the MQ patch stack”
illustrates the difference between applied and tracked patches.
Figure 12.1. Applied and unapplied patches in the MQ patch stack
You can reapply an unapplied, or popped, patch using the qpush command. This creates a new changeset to correspond to
the patch, and the patch's changes once again become present in the working directory. See below for examples of qpop
and qpush in action.
$ hg qapplied
first.patch
second.patch
$ hg qpop
popping second.patch
now at: first.patch
$ hg qseries
first.patch
second.patch
$ hg qapplied
first.patch
$ cat file1
134