Gregory Szorc <gregory.szorc@gmail.com> [Fri, 04 Dec 2015 15:12:11 -0800] rev 27246
wireproto: config options to disable bundle1
bundle2 is the new and preferred wire protocol format. For various
reasons, server operators may wish to force clients to use it.
One reason is performance. If a repository is stored in generaldelta,
the server must recompute deltas in order to produce the bundle1
changegroup. This can be extremely expensive. For mozilla-central,
bundle generation typically takes a few minutes. However, generating
a non-gd bundle from a generaldelta encoded mozilla-central requires
over 30 minutes of CPU! If a large repository like mozilla-central
were encoded in generaldelta and non-gd clients connected, they could
easily flood a server by cloning.
This patch gives server operators config knobs to control whether
bundle1 is allowed for push and pull operations. The default is to
support legacy bundle1 clients, making this patch backwards compatible.
Mathias De Maré <mathias.demare@gmail.com> [Mon, 07 Dec 2015 17:39:31 +0100] rev 27245
dockerlib: short form for non-unique uid/gid for CentOS 5 compat (
issue4977)
CentOS 5 does not support '--non-unique', but does support the short '-o'.
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 04 Dec 2015 13:31:01 -0800] rev 27244
exchange: standalone function to determine if bundle2 is requested
This will be used in a subsequent patch.
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 04 Dec 2015 13:15:14 -0800] rev 27243
wireproto: add docstring for wirepeer
Augie Fackler <augie@google.com> [Fri, 04 Dec 2015 15:24:05 -0500] rev 27242
commit: add some help examples (
issue4963)
Includes documenting --date now, which resolves the above issue.
Augie Fackler <augie@google.com> [Fri, 04 Dec 2015 11:39:03 -0500] rev 27241
changegroup: restate file linknode callback using generator expressions
I think this is slightly clearer, and it nicely avoids an extra nested
function.
Augie Fackler <augie@google.com> [Fri, 04 Dec 2015 11:38:02 -0500] rev 27240
changegroup: clean up file lookup function
One case is basically degenerate, so just extract it and make the
function clearer.
Augie Fackler <augie@google.com> [Fri, 04 Dec 2015 10:55:46 -0500] rev 27239
changegroup: remove one special case from lookupmflinknode
In the fastpathlinkrev case, lookupmflinknode was a very complicated
way of saying mfs.__getitem__, so let's just get that case out of our
way so it's easier to understand what's going on.
Augie Fackler <augie@google.com> [Fri, 04 Dec 2015 10:35:45 -0500] rev 27238
changegroup: drop 'if True' that made the previous change clearer
Augie Fackler <augie@google.com> [Fri, 04 Dec 2015 10:34:58 -0500] rev 27237
changegroup: avoid iterating the whole manifest
The old code gathered the list of all files that changed anywhere in
history and then gathered changed file nodes by walking the entirety
of each manifest to be sent in order to gather changed file
nodes. That's going to be unfortunate for narrowhg, and it's already
inefficient for medium-to-large repositories.
Timings for bundle --all on my hg repo, tested with hgperf:
Before:
! wall 23.442445 comb 23.440000 user 23.250000 sys 0.190000 (best of 3)
After:
! wall 20.272187 comb 20.270000 user 20.190000 sys 0.080000 (best of 3)
Augie Fackler <augie@google.com> [Fri, 04 Dec 2015 15:59:46 -0500] rev 27236
posix: work around "posix" systems without os.link available (
issue4974)
Some platforms (see bug, notably a terminal emulator on Android) ship
with os.link removed from Python to try and cater to other tools that
expect os.link to exist iff hardlinks are supported on that
platform. As a workaround for this madness, include a fallback path
for when we're on a "posix" platform but lack os.link.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 03 Dec 2015 13:14:20 -0800] rev 27235
pathutil: use temporary variables instead of complicated wrapping
The one-lining did not help readability, we get rid of it.