extensions: document that `testedwith = 'internal'` is special
Extension authors (notably at companies using hg) have been
cargo-culting the `testedwith = 'internal'` bit from hg's own
extensions, which then defeats our "file bugs over here" logic in
dispatch. Let's be more aggressive about trying to give extension
authors a hint about what testedwith should say.
treemanifest: cache directory logs and manifests
Since manifests instances are cached on the manifest log instance, we
can cache directory manifests by caching the directory manifest
logs. The directory manifest log cache is a plain dict, so it never
expires; we assume that we can keep all the directories in memory.
The cache is kept on the root manifestlog, so access to directory
manifest logs now has to go through the root manifest log.
The caching will soon not be only an optimization. When we start
lazily loading directory manifests, we need to make sure we don't
create multiple instances of the log objects. The caching takes care
of that problem.
hook: drop dedicated catch for 'KeyboardInterrupt'
This is no longer under 'Exception' in Python 2.6.
recover: catch any exception, not just Exception
We want recover to be rock solid.
exchange: catch down to BaseException when handling bundle2
We can now catch more things.
bundle2: use BaseException in bundle2
We can ensure we fail over properly in more cases.
check-code: drop ban of BaseException
Lets go back to the basic. It is available in Python 2.6.
wireproto: turn an 'except' into a 'finally' as suggest by the comment
Look! More hidden footprints!
check-code: drop the yield inside try/finally ban
This is now possible with Python 2.6.
run-tests: resurrect the wifexited polyfill (backout
6ab5a1c9ea3c)
Python 2.7.3 on Windows doesn't have os.WIFEXITED, and the test output looked
like this before I interrupted it.
$ ./run-tests.py --local -j2 -t700
EEEEEEEEEEEEEEEEEEEEEE