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.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 03 Dec 2015 13:23:46 -0800] rev 27234
context: use a the nofsauditor when matching file in history (
issue4749)
Before this change, asking for file from history (eg: 'hg cat -r 42 foo/bar')
could fail because of the current content of the working copy (eg: current
"foo" being a symlink). As the working copy state have no influence on the
content of the history, we can safely skip these checks.
The working copy context class have a different 'match'
implementation. That implementation still use the repo.auditor will
still catch symlink traversal.
I've audited all stuff calling "match" and they all go through a ctx
in a sensible way. The most unclear case was diff which still seemed
okay. You raised my paranoid level today and I double checked through
tests. They behave properly.
The odds of someone using the wrong (matching with a changectx for
operation that will eventually touch the file system) is non-zero
because you are never sure of what people will do. But I dunno if we
can fight against that. So I would not commit to "never" for "at this
level" and "in the future" if someone write especially bad code.
However, as a last defense, the vfs itself is running path auditor in
all cases outside of .hg/. So I think anything passing the 'matcher'
for buggy reason would growl at the vfs layer.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 03 Dec 2015 13:22:36 -0800] rev 27233
localrepo: add a second auditor without file system check
Auditors keeps a cache of audited paths. Therefore we cannot use the same
auditor for working copy and history operation. We create a new one without
file system check for this purposes.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 03 Dec 2015 10:40:19 -0800] rev 27232
pathauditor: add a way to skip file system check
We need to be able to skip it when looking at data within the history.
Doing them in all cases leads to buggy behavior like
issue4749.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 03 Dec 2015 12:22:48 -0800] rev 27231
pathauditor: move file system specific check in their own function
This will make it easy to disable that part when not relevant (eg: auditing
filename for operation in history)