Changeset ID

A changeset ID is a 160-bit identifier that uniquely describes a [:ChangeSet:changeset] and its position in the change history of a [:Repository:repository], regardless of which machine or repository it's on. This is represented to the user as a 40 digit hexadecimal number. Technically, a changeset ID is a [:Nodeid:nodeid].

Short-form Changeset IDs

Since a 40 digit hex number is unwieldy, Mercurial will accept any unambiguous prefix of a changeset ID as shorthand for that ID.

When printing a changeset ID, Mercurial usually prints just the first twelve characters. This is called the "short form" of the ID.

Note: a short-form ID can start out valid, but become invalid because another changeset with the same prefix shows up later on. Do not use short-form IDs for long-lived representations. You can use the --debug option to display the full changeset ID. For example:

$ hg --debug tags
tip                                1:1ef7872431f9c64908c732f0bcd4db5700b4cb70
test-tag                           0:1438e82fac1c2191394e67257b7b94e05c7caa2f

Revision numbers are shorthand

Within a single repository, you can use a [:RevisionNumber:revision number] as shorthand for a changeset ID.


CategoryGlossary