Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get the current mercurial changeset revision not the hash

Tags:

mercurial

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.

like image 840
Simon Martin Avatar asked Jun 13 '12 09:06

Simon Martin


2 Answers

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()" 
like image 144
Laurens Holst Avatar answered Sep 17 '22 20:09

Laurens Holst


You can use a custom template for the hg parent command.

This should get what you want:

hg parent --template "{rev}" 
like image 34
Steve Kaye Avatar answered Sep 20 '22 20:09

Steve Kaye