Mercurial > public > mercurial-scm > hg-stable
diff mercurial/version.py @ 429:688d03d6997a
Pull from TAH
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Pull from TAH
manifest hash: 600d04efbd836d555d11a3bd9d821d1d8c0a9790
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCuPFxywK+sNU5EO8RAjfzAKC18Zc2EOkXhy1zcpgGnyPHnFMdmgCfW5Ut
I5HSWqZMt8H0WJx1Or7ajNc=
=27D5
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Tue, 21 Jun 2005 21:04:49 -0800 |
parents | 36e644d28edf |
children | 9ae0034f2772 50da4bb9cab6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/version.py Tue Jun 21 21:04:49 2005 -0800 @@ -0,0 +1,66 @@ +# Copyright (C) 2005 by Intevation GmbH +# Author(s): +# Thomas Arendsen Hein <thomas@intevation.de> +# +# This program is free software under the GNU GPL (>=v2) +# Read the file COPYING coming with the software for details. + +""" +Mercurial version +""" + +import os +import os.path +import re +import time + +unknown_version = 'unknown' +remembered_version = False + +def get_version(): + """Return version information if available.""" + try: + from mercurial.__version__ import version + except ImportError: + version = unknown_version + return version + +def write_version(version): + """Overwrite version file.""" + filename = os.path.join(os.path.dirname(__file__), '__version__.py') + f = open(filename, 'w') + f.write("# This file is auto-generated.\n") + f.write("version = %r\n" % version) + f.close() + +def remember_version(version=None): + """Store version information.""" + global remembered_version + if not version and os.path.isdir(".hg"): + f = os.popen("hg identify 2>/dev/null") # use real hg installation + ident = f.read()[:-1] + if not f.close() and ident: + ids = ident.split(' ', 1) + version = ids.pop(0) + if version[-1] == '+': + version = version[:-1] + modified = True + else: + modified = False + if version.isalnum() and ids: + for tag in ids[0].split('/'): + # is a tag is suitable as a version number? + if re.match(r'^(\d+\.)+[\w.-]+$', tag): + version = tag + break + if modified: + version += time.strftime('+%Y%m%d') + if version: + remembered_version = True + write_version(version) + +def forget_version(): + """Remove version information.""" + if remembered_version: + write_version(unknown_version) +