How can I get the current mercurial changeset revision not the hash
Solution 1
You can show the local revision number of the working copy’s current parent using:
hg identify --num
Note that this outputs a +
suffix when there are local changes. Add an -r .
option to avoid this.
You can use the -r
option to get the local revision number for other revisions too. For example, to retrieve the ID of the last tagged ancestor:
hg id -n -r "ancestors(.) and tag()"
Solution 2
You can use a custom template for the hg parent
command.
This should get what you want:
hg parent --template "{rev}"
Simon Martin
Developer specialising in the Angle Brackets stuff (ASP.NET, Azure, and Web Tools).
Updated on June 14, 2020Comments
-
Simon Martin about 4 years
I need to get the current mercurial changeset to return in a very simple webservice, just the incrementing revision number and not the hash. I know I can use
hg --cwd C:\repos\MyRepo parent
which will return me
changeset: 730:9d347e4a8d47 tag: tip user: Simon Martin <[email protected]> date: Tue Jun 12 15:39:45 2012 +0100 summary: Fixed defect #244...
What I need though is just the 730 part of the changeset. The goal is to be able to write a very simple web service that will return that value - this will then be picked up by another application and displayed in the footer to give a quick reference as to which local revision is current. The testing process can then refer to that 'build' which can then be used to identify that.
-
Simon Martin about 12 yearsHow and where do I set up the custom template?
-
Laurens Holst about 12 yearsIt’s specified right there on the command line, no need to set anything up. Another template example:
--template "Local revision number: {rev}\n"
. -
wip about 7 yearsSome documentation describing this feature is available here: hgbook.red-bean.com/read/…
-
Doug J. Huras over 6 yearsThanks for the info. I like: "hg id -i" to get just the tip changeset id.