455 elif os.path.exists('.hg_archival.txt'): |
455 elif os.path.exists('.hg_archival.txt'): |
456 kw = dict( |
456 kw = dict( |
457 [[t.strip() for t in l.split(':', 1)] for l in open('.hg_archival.txt')] |
457 [[t.strip() for t in l.split(':', 1)] for l in open('.hg_archival.txt')] |
458 ) |
458 ) |
459 if 'tag' in kw: |
459 if 'tag' in kw: |
460 version = kw['tag'] |
460 version = _version(tag=kw['tag']) |
461 elif 'latesttag' in kw: |
461 elif 'latesttag' in kw: |
462 if 'changessincelatesttag' in kw: |
462 distance = int(kw.get('changessincelatesttag', kw['latesttagdistance'])) |
463 version = ( |
463 version = _version( |
464 '%(latesttag)s+hg%(changessincelatesttag)s.%(node).12s' % kw |
464 tag=kw['latesttag'], |
465 ) |
465 branch=kw['branch'], |
466 else: |
466 changes_since=distance, |
467 version = '%(latesttag)s+hg%(latesttagdistance)s.%(node).12s' % kw |
467 hgid=kw['node'][:12], |
|
468 ) |
468 else: |
469 else: |
469 version = '0+hg' + kw.get('node', '')[:12] |
470 version = _version( |
|
471 tag='0', |
|
472 branch='unknown-source', |
|
473 changes_since=1, |
|
474 hgid=kw.get('node', 'unknownid')[:12], |
|
475 dirty=True, |
|
476 ) |
470 elif os.path.exists('mercurial/__version__.py'): |
477 elif os.path.exists('mercurial/__version__.py'): |
471 with open('mercurial/__version__.py') as f: |
478 with open('mercurial/__version__.py') as f: |
472 data = f.read() |
479 data = f.read() |
473 version = re.search('version = b"(.*)"', data).group(1) |
480 version = re.search('version = b"(.*)"', data).group(1) |
474 if not version: |
481 if not version: |