##// END OF EJS Templates
hgweb: descend empty directories in web view...
hgweb: descend empty directories in web view When a manifest has a series of directories with nothing in them but a single directory, displaying the entire chain of empty directories allows for navigation down to the first non-empty directory with a single click. Because Java links package hierarchy to directory hierarchy, and because Java conventions include at least three empty directories at the top of this hierarchy, descending down empty directories is very common in Java web tools.

File last commit:

r6565:a0a72690 default
r7305:c21d236c default
Show More
version.py
77 lines | 2.2 KiB | text/x-python | PythonLexer
# Copyright (C) 2005, 2006, 2008 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 re
import time
unknown_version = 'unknown'
remembered_version = False
def get_version(doreload=False):
"""Return version information if available."""
try:
import mercurial.__version__
if doreload:
reload(mercurial.__version__)
version = mercurial.__version__.version
except ImportError:
version = unknown_version
return version
def write_version(version):
"""Overwrite version file."""
if version == get_version():
return
directory = os.path.dirname(__file__)
for suffix in ['py', 'pyc', 'pyo']:
try:
os.unlink(os.path.join(directory, '__version__.%s' % suffix))
except OSError:
pass
f = open(os.path.join(directory, '__version__.py'), 'w')
f.write("# This file is auto-generated.\n")
f.write("version = %r\n" % version)
f.close()
# reload the file we've just written
get_version(True)
def remember_version(version=None):
"""Store version information."""
global remembered_version
if not version and os.path.isdir(".hg"):
f = os.popen("hg identify") # 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)