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