A changeset ID is a 160-bit identifier that uniquely describes a changeset and its position in the change history of a 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.
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 revision number as shorthand for a changeset ID.