summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>2012-04-22 13:39:47 +0200
committerRonny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>2012-04-22 13:39:47 +0200
commitc75df48b1b81725688fe0e7099babfa3c7c8c37e (patch)
tree45eed26b6daca86f194ef2d81c062a21a859f52c
parent73336f14a20d4037b907359f7e32b6cdcca218c7 (diff)
downloadsetuptools-scm-c75df48b1b81725688fe0e7099babfa3c7c8c37e.tar.gz
use tag version when updated to tag commits
-rw-r--r--hgdistver.py14
-rw-r--r--test_hgdistver.py8
2 files changed, 19 insertions, 3 deletions
diff --git a/hgdistver.py b/hgdistver.py
index 6835408..eb8566a 100644
--- a/hgdistver.py
+++ b/hgdistver.py
@@ -106,6 +106,16 @@ def version_from_hg_id(root, cachefile=None):
return tags[0] + node[12:] # '' or '+'
+def _hg_tagdist_normalize_tagcommit(root, tag, dist, node):
+ st = do('hg st --no-status --change %s' % node, root)
+
+ trace('normalize', locals())
+ if int(dist) == 1 and st == '.hgtags':
+ return tag
+ else:
+ return '%s.post%s-%s' % (tag, dist, node)
+
+
def version_from_hg15_parents(root, cachefile=None):
node = do('hg id -i', root)
if node.strip('+') == '000000000000':
@@ -119,7 +129,7 @@ def version_from_hg15_parents(root, cachefile=None):
tag = '0.0'
else:
tag = tag_to_version(tag)
- return '%s.post%s-%s' % (tag, dist, node)
+ return _hg_tagdist_normalize_tagcommit(root, tag, dist, node)
except ValueError:
pass # unpacking failed, old hg
@@ -140,7 +150,7 @@ def version_from_hg_log_with_tags(root, cachefile=None):
line = line.decode()
tags = tags_to_versions(line.split())
if tags:
- return '%s.post%s-%s' % (tags[0], dist, node)
+ return _hg_tagdist_normalize_tagcommit(root, tags[0], dist, node)
return '0.0.post%s-%s' % (dist + 1, node)
diff --git a/test_hgdistver.py b/test_hgdistver.py
index 354a792..fac801c 100644
--- a/test_hgdistver.py
+++ b/test_hgdistver.py
@@ -106,7 +106,13 @@ def test_version_from_hg_id(tmpdir, method):
do('hg tag v0.1 -u test -d "0 0"', cwd)
after_tag_01 = get_version(cwd, method=method)
- assert after_tag_01.startswith('0.1.post1-')
+ assert after_tag_01 == '0.1'
+
+ tmpdir.join('test.txt').write('test2')
+ do('hg commit -m commit2 -u test -d "0 0"', cwd)
+
+ second_after_tag_01 = get_version(cwd, method=method)
+ assert second_after_tag_01.startswith('0.1.post2')
do('hg up v0.1', cwd)
at_tag_01 = get_version(cwd)