summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>2010-08-18 16:29:26 +0200
committerRonny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>2010-08-18 16:29:26 +0200
commit86a15ac83b532d46e529591e1e24b0b36d8bbad6 (patch)
tree0d7753ebe9114ac18988455e401219e22bf414d2
parent165b15e9375c44845ce0870a9978e9a306a80397 (diff)
downloadsetuptools-scm-86a15ac83b532d46e529591e1e24b0b36d8bbad6.tar.gz
create a new function that handles a propper semantic flow for getting the version from hg
-rw-r--r--hgdistver.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/hgdistver.py b/hgdistver.py
index b58c21e..1a574cd 100644
--- a/hgdistver.py
+++ b/hgdistver.py
@@ -90,6 +90,22 @@ def version_from_hg_log_with_tags(root, cachefile=None):
return '0.0.dev%s-%s' % (dist + 1, node)
+def version_from_hg(root, cachefile=None):
+ # no .hg means no way to get it
+ if not os.path.isdir(os.path.join(root, '.hg')):
+ return
+ # if id has a tag we are lucky
+ version_from_id = version_from_hg_id(root)
+ if version_from_id:
+ return version_from_id
+ hgver_out = hg('--version')
+ hgver_out = hgver_out.splitlines()[0].rstrip(')')
+ hgver = hgver_out.split('version ')[-1]
+ if hgver < '1.5':
+ return version_from_hg_log_with_tags(root)
+ else:
+ return version_from_hg15_parents(root)
+
def _archival_to_version(data):
"""stolen logic from mercurials setup.py"""
if 'tag' in data:
@@ -133,8 +149,7 @@ def write_cachefile(path, version):
methods = [
- version_from_hg_id,
- version_from_hg15_parents,
+ version_from_hg,
version_from_cachefile,
version_from_sdist_pkginfo,
version_from_archival,