Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 16:24:57 -0700] rev 25935
demandimport: refactor logic and add documentation
demandimport doesn't currently support absolute imports (level >= 0).
In preparation for this, we add some documentation and a code branch
to handle the absolute_import case.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 17:12:37 -0700] rev 25934
demandimport: add __future__ to ignore list
__future__ is special. We should definitely not be trying to lazy
load it.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 15:01:27 -0700] rev 25933
demandimport: remove support for Python < 2.5
The removed code was to support an __import__ function that doesn't
support the "level" argument. This argument was added in Python 2.5,
which we no longer support.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 14:42:48 -0700] rev 25932
dispatch: use absolute_import
A mixed, ambiguous import has been removed!
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 14:30:39 -0700] rev 25931
commands: break import cycle
This was the easiest link in the chain to break as there was only
one use of commandserver in commands.py. Other files had multiple
users.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 00:47:19 -0700] rev 25930
cmdutil: break import cycle
This was the easiest place to break the chain, as there were only
2 uses of the imported module in the file.
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Jul 2015 12:50:09 +0900] rev 25929
revset: make balanced addsets by orset() without using _combinesets()
As scmutil.revrange() was rewritten to not use _combinesets(), we no longer
need _combinesets().
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Jul 2015 12:35:42 +0900] rev 25928
revrange: evaluate all revset specs at once
This provides an opportunity for revset to optimize given expressions. For
example, "-r0 -r1 -r2" can be optimized to "_list(0 1 2)".
Yuya Nishihara <yuya@tcha.org> [Fri, 07 Aug 2015 21:39:38 +0900] rev 25927
revset: add matchany() to construct OR expression from a list of specs
This will allow us to optimize "-rREV1 -rREV2 ..." command-line options.
Yuya Nishihara <yuya@tcha.org> [Fri, 07 Aug 2015 21:31:16 +0900] rev 25926
revset: split post-parsing stage from match()
_makematcher() will be reused by new matchany(ui, specs, repo=None) function
I'll add by the next patch.
Anton Shestakov <av6@dwimlabs.net> [Sat, 08 Aug 2015 14:42:27 +0800] rev 25925
filesets: ignore unit case in size() predicate for single value
When specifying one plain value in size(), e.g. size(1k), fileset tries to
guess the upper bound automatically (see the comment in _sizetomax()). It
didn't ignore the specified unit's case, and so size("1 GB"), for example,
produced this error:
hg: parse error: couldn't parse size: 1 GB
Let's do the same thing that util.sizetoint() does: .lower().
The two test lines without output just check that there are no parse errors.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 00:41:13 -0700] rev 25924
copies: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 00:28:53 -0700] rev 25923
config: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 00:26:49 -0700] rev 25922
changelog: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 00:35:37 -0700] rev 25921
changegroup: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Aug 2015 00:36:35 -0700] rev 25920
bundlerepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 07 Aug 2015 19:54:08 -0700] rev 25919
bundle2: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 07 Aug 2015 19:51:55 -0700] rev 25918
branchmap: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 07 Aug 2015 19:49:21 -0700] rev 25917
bookmarks: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 07 Aug 2015 19:47:49 -0700] rev 25916
archival: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 07 Aug 2015 19:45:48 -0700] rev 25915
ancestor: use absolute_import
A few months ago, import-checker.py was taught to enforce a more
well-defined import style for files with absolute_import. However,
we stopped short of actually converting source files to use
absolute_import because of problems with certain files.
Investigation revealed the following problems with switching to
absolute_import universally:
1) import cycles result in import failure on Python 2.6
2) undetermined way to import C/pure modules
While these problems need to be solved, they can be put off.
This patch starts a series of converting files to absolute_import
that won't exhibit any of the aforementioned problems.
Augie Fackler <augie@google.com> [Wed, 05 Aug 2015 14:21:46 -0400] rev 25914
discovery: always use batching now that all peers support batching
Some peers will transparently downgrade batched requests to
non-batched ones, but that simplifies code for everyone using
batching.
Augie Fackler <augie@google.com> [Wed, 05 Aug 2015 14:15:17 -0400] rev 25913
wireproto: make wirepeer look-before-you-leap on batching
This means that users of request batching don't need to worry
themselves with capability checking. Instead, they can just use
batching, and if the remote server doesn't support batching for some
reason the wirepeer code will transparently un-batch the requests.
This will allow for some slight simplification in a handful of
places. Prior to this change, largefiles would have been silently
broken against a server which did not support batching.
Augie Fackler <augie@google.com> [Wed, 05 Aug 2015 14:51:34 -0400] rev 25912
batching: migrate basic noop batching into peer.peer
"Real" batching only makes sense for wirepeers, but it greatly
simplifies the clients of peer instances if they can be ignorant to
actual batching capabilities of that peer. By moving the
not-really-batched batching code into peer.peer, all peer instances
now work with the batching API, thus simplifying users.
This leaves a couple of name forwards in wirepeer.py. Originally I had
planned to clean those up, but it kind of unclarifies other bits of
code that want to use batching, so I think it makes sense for the
names to stay exposed by wireproto. Specifically, almost nothing is
currently aware of peer (see largefiles.proto for an example), so
making them be aware of the peer module *and* the wireproto module
seems like some abstraction leakage. I *think* the right long-term fix
would actually be to make wireproto an implementation detail that
clients wouldn't need to know about, but I don't really know what that
would entail at the moment.
As far as I'm aware, no clients of batching in third-party extensions
will need updating, which is nice icing.