Simon Martin
Simon Martin

Reputation: 4231

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

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.

Upvotes: 40

Views: 29368

Answers (2)

Laurens Holst
Laurens Holst

Reputation: 21086

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()"

Upvotes: 54

Steve Kaye
Steve Kaye

Reputation: 6252

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

This should get what you want:

hg parent --template "{rev}"

Upvotes: 15

Related Questions