Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27537
demandimport: update obsolete comment
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27536
demandimport: add support for PyPy
PyPy's implementation of __import__ differs subtly from that of CPython.
If invoked without a name or fromlist, it throws an ImportError,
whereas CPython returns a reference to the level-appropriate importing
package.
Here, we achieve the same behaviour by hand.
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27535
test-demandimport: ensure that relative imports are deferred
This adds a test not just at our local "top level" (the mercurial
package), but also one level deeper (mercurial.hgweb).
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27534
histedit: don't bother with cPickle, demand-load pickle
We're unlikely to ever need the pickle module, so there's no good
reason to force loading of its faster cousin.
Matt Mackall <mpm@selenic.com> [Mon, 28 Dec 2015 10:11:48 -0600] rev 27533
merge with stable
Sean Farley <sean@farley.io> [Wed, 16 Dec 2015 10:39:00 -0800] rev 27532
crecord: stop raising error.Abort if curses is not found (issue5008)
On some servers, python curses support is disabled. This patch not only fixes
that but provides a fallback on other machines (e.g. Windows) when curses is
not found.
The previous code was actually flawed logic and relied on wcurses throwing an
ImportError which demandimport wouldn't throw. So, this patch also fixes that
problem.
Sean Farley <sean@farley.io> [Tue, 15 Dec 2015 16:01:45 -0800] rev 27531
cmdutil: use crecordmod.checkcurses
Instead of blindly trusting the user's experimental.crecord, we use checkcurses
to abstract that logic so that we can handle the case where python was not
built with curses.
Sean Farley <sean@farley.io> [Tue, 15 Dec 2015 16:00:06 -0800] rev 27530
crecord: ensure that curses is False if not imported
This provides no functional change but makes the next two patches easier to
review.
Sean Farley <sean@farley.io> [Tue, 15 Dec 2015 15:56:10 -0800] rev 27529
crecord: add helper function to determine if we should use curses
To fix issue5008 properly, we need a helper function to determine if curses is
imported and also if the user has enabled the experimental flag.
Sean Farley <sean@farley.io> [Wed, 16 Dec 2015 10:33:19 -0800] rev 27528
crecord: use try/except for import of curses
Not only does this improve fragility with 'if os.name == ...' it will help
future patches enable the behavior to fallback to use plain record when curses
is unavailable (e.g. python compiled without curses support).