Mercurial > hg-stable
changeset 21229:54d7657d7d1e stable
setup.py, make: avoid problems with outdated, existing hgext/__index__.py*
"make clean" already removed __index__.py[cdo], but not the __index__.py
(automatically generated by "python setup.py build_hgextindex").
"setup.py build_hgextindex" did not generate a new index if file
__index__.py[cdo] already existed, because if __index__.py was removed,
the compiled file containing the old information was imported and used.
Generate an empty file (with a new timestamp to generate a new .py[cdo])
instead and make mercurial.extensions ignore the unset docs attribute.
One of the problems was a failed test-help.t, to reproduce:
$ rm hgext/__index__.py*
$ echo 'docs = {"mq": "dummy"}' > hgext/__index__.py
$ make test-help.t
With this a "make clean" or "python setup.py build_hgextindex" helps.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Mon, 05 May 2014 16:54:15 +0200 |
parents | 75aaae8ad660 |
children | d882a8786ddf d8fb835376d1 0e8a8ba22293 |
files | Makefile mercurial/extensions.py setup.py |
diffstat | 3 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Sat May 03 03:29:30 2014 +0200 +++ b/Makefile Mon May 05 16:54:15 2014 +0200 @@ -56,7 +56,7 @@ find contrib doc hgext i18n mercurial tests \ \( -name '*.py[cdo]' -o -name '*.so' \) -exec rm -f '{}' ';' rm -f $(addprefix mercurial/,$(notdir $(wildcard mercurial/pure/[a-z]*.py))) - rm -f MANIFEST MANIFEST.in mercurial/__version__.py tests/*.err + rm -f MANIFEST MANIFEST.in mercurial/__version__.py hgext/__index__.py tests/*.err rm -rf build mercurial/locale $(MAKE) -C doc clean
--- a/mercurial/extensions.py Sat May 03 03:29:30 2014 +0200 +++ b/mercurial/extensions.py Mon May 05 16:54:15 2014 +0200 @@ -281,7 +281,7 @@ return dict((name, gettext(desc)) for name, desc in __index__.docs.iteritems() if name not in _order) - except ImportError: + except (ImportError, AttributeError): pass paths = _disabledpaths() @@ -304,7 +304,7 @@ return else: return gettext(__index__.docs.get(name)) - except ImportError: + except (ImportError, AttributeError): pass paths = _disabledpaths()
--- a/setup.py Sat May 03 03:29:30 2014 +0200 +++ b/setup.py Mon May 05 16:54:15 2014 +0200 @@ -331,7 +331,9 @@ def run(self): if os.path.exists(self._indexfilename): - os.unlink(self._indexfilename) + f = open(self._indexfilename, 'w') + f.write('# empty\n') + f.close() # here no extension enabled, disabled() lists up everything code = ('import pprint; from mercurial import extensions; '