##// END OF EJS Templates
Make sure the repository names don't have slashes at the at or else in some...
Make sure the repository names don't have slashes at the at or else in some cases env[path_info] will not find an defined repository. REQUEST_URI can contain a query_string appending the repository name would lead to corrupt urls.

File last commit:

r464:50da4bb9 merge default
r1181:4f5001f5 default
Show More
version.py
67 lines | 1.9 KiB | text/x-python | PythonLexer
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423 # 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
mpm@selenic.com
[PATCH] /dev/null for other OS...
r461 import util
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423
unknown_version = 'unknown'
Thomas Arendsen Hein
remember_version() only writes version if called in a Mercurial repository....
r425 remembered_version = False
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423
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()
Thomas Arendsen Hein
Make it possible to specify a version number in setup.py....
r427 def remember_version(version=None):
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423 """Store version information."""
Thomas Arendsen Hein
remember_version() only writes version if called in a Mercurial repository....
r425 global remembered_version
Thomas Arendsen Hein
Make it possible to specify a version number in setup.py....
r427 if not version and os.path.isdir(".hg"):
mpm@selenic.com
[PATCH] /dev/null for other OS...
r461 f = os.popen("hg identify 2> %s" % util.nulldev) # use real hg installation
Thomas Arendsen Hein
remember_version() only writes version if called in a Mercurial repository....
r425 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')
Thomas Arendsen Hein
Make it possible to specify a version number in setup.py....
r427 if version:
remembered_version = True
write_version(version)
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423
def forget_version():
"""Remove version information."""
Thomas Arendsen Hein
remember_version() only writes version if called in a Mercurial repository....
r425 if remembered_version:
write_version(unknown_version)
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423