Mercurial updating to public failed
(In reality, of course, it creates a successor changeset, marking the original obsolete.) In contrast, Figure 4: uncommit moves some of the changes from the working directory parent into the working dir, preserving the remaining changes as a new successor changeset. (Incidentally, there are two other types of trouble that changesets can get into with Traditionally, your only option is to commit an “oops” changeset that fixes your mistake.
That works, of course, but it makes you look bad: you made a mistake, and the record of that mistake is recorded in history for all eternity.
Before we start exploring advanced usage that can run into trouble, let’s step back and see what happens when Mercurial marks changesets obsolete.
We’ll see examples of that later, when we cover advanced usage. This is just the visible manifestation of hidden changesets.
If revision 0 is followed by revision 3, that means there are two hidden changesets, 1 and 2, in between.
That will make it much easier to understand the more advanced use cases we’ll see later. Another way of looking at it is that obsolescence is second-order version control, i.e. We’ll cover this in more detail (and mathematical precision) in the concepts guide.
: the original revision 1 is preserved as an obsolete changeset.