hgdistver /

Filename Size Date modified Message
66 B
641 B
140 B
1023 B
1.2 KB
93 B
9.5 KB
1.1 KB
5.0 KB
250 B


This module is a simple drop-in to support setup.py in mercurial based projects.

Alternatively it can be a setup time requirement.

Its supposed to generate version numbers from mercurials meta-data. It tries to use the current tag and falls back to the next reachable tagged ancestor and using the distance to it as .post marker.

It uses 4 strategies to archive its task:

  1. try to directly ask hg for the tag/distance
  2. try to infer it from the .hg_archival.txt file
  3. try to use the cache file if it exists
  4. try to read the version from the 'PKG-INFO' file sdists contain (this is a nasty abuse)

The most simple usage is:

from setuptools import setup
from hgdistver import get_version

get_version takes the optional argument cachefile, which causes it to store the version info in a python script instead of abusing PKG-INFO from a sdist.

The setup requirement usage is:

from setuptools import setup

The requirement uses the setup argument cache_hg_version_to instead of cachefile.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.