diff options
author | Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de> | 2012-04-22 13:39:47 +0200 |
---|---|---|
committer | Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de> | 2012-04-22 13:39:47 +0200 |
commit | c75df48b1b81725688fe0e7099babfa3c7c8c37e (patch) | |
tree | 45eed26b6daca86f194ef2d81c062a21a859f52c | |
parent | 73336f14a20d4037b907359f7e32b6cdcca218c7 (diff) | |
download | setuptools-scm-c75df48b1b81725688fe0e7099babfa3c7c8c37e.tar.gz |
use tag version when updated to tag commits
-rw-r--r-- | hgdistver.py | 14 | ||||
-rw-r--r-- | test_hgdistver.py | 8 |
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) |