Pulkit Goyal <pulkit@yandex-team.ru> [Wed, 25 Jul 2018 21:19:06 +0300] rev 38761
context: safegaurd against 'lx' being passed as file flag in manifest
Subversion can have a file as executable link. When using hgsubversion, we will
have both islink and isexec True. This will lead to _flags being set to `lx`.
However, manifest expects flag to be one-byte so it will crash if 'lx' is
passed. Also it's impossible to have an executable link.
This patch will safegaurd us from having 'lx' being a possible value.
This was authored by Ivan Lezhankin from Yandex.
Differential Revision: https://phab.mercurial-scm.org/D3985
Boris Feld <boris.feld@octobus.net> [Tue, 31 Jul 2018 13:53:06 -0700] rev 38760
localrepo: unconditionally enable general delta with sparse revlogs
This come as an extra security, better safe than sorry.
Boris Feld <boris.feld@octobus.net> [Mon, 30 Jul 2018 15:53:47 +0200] rev 38759
sparse-revlog: also use sparse-revlog config as a general delta trigger
Sparse revlog rely on general delta, so we should make sure it is used.
Yuya Nishihara <yuya@tcha.org> [Sun, 29 Jul 2018 16:25:51 +0900] rev 38758
fileset: suppress EACCES while reading arbitrary paths via filectx API
On Windows, EACCES is raised in place of EISDIR. This patch simply adds
EACCES to the list of errors to be ignored since I think it's okay for
filesets to treat inaccessible working-copy files as not existing.
Pulkit Goyal <pulkit@yandex-team.ru> [Fri, 27 Jul 2018 14:56:10 +0300] rev 38757
merge: do the trivial resolution after updating sparse checkout
In merge, we do trivial resolution for files which were deleted on one side and
changed on other. When sparse extension in involved that file might not be
present in wdir and trivial resolution can lead to file not found error. This
patch make sure we updates the sparse checkout before doing the trivial
resolution.
This fixes the test failure demonstrated in previous patch.
Differential Revision: https://phab.mercurial-scm.org/D3984
Pulkit Goyal <pulkit@yandex-team.ru> [Fri, 27 Jul 2018 14:53:28 +0300] rev 38756
sparse: add test showing `hg merge` is broken while using sparse extension
This patch adds a test to demonstrate that `hg merge` is broken in some cases
while using sparse extension.
The case is when you have a file which is:
* modified between current wdir parent and merge base
* deleted between merge base and merge destination
* excluded from sparse checkout
Doing `hg merge` results in file not found error. Next patch will fix this.
Differential Revision: https://phab.mercurial-scm.org/D3983
Martin von Zweigbergk <martinvonz@google.com> [Mon, 30 Jul 2018 14:36:42 -0700] rev 38755
context: use hex nodeid in error about filtered node
I went a little too far in my cleanup in
9231148ea599 (context:
convert to hex for error message only for 20-byte changeid,
2018-04-06). I missed that the case where a binary nodeid refers to a
filtered node.
Differential Revision: https://phab.mercurial-scm.org/D3987
Boris Feld <boris.feld@octobus.net> [Tue, 31 Jul 2018 10:55:14 +0200] rev 38754
doc: fix underline length for config title (
issue5949)
This was an error in the initial commit.
Thanks go to Marcel Svitalský for reporting the bug.
Boris Feld <boris.feld@octobus.net> [Mon, 30 Jul 2018 15:36:04 +0200] rev 38753
clone: process 'lookup' return as an arbitrary symbol
In theory, checkout is expected to be a node here because it was returned by
peer.lookup.
In practice, multiple important extensions (like hg-git, hg-subversion) use
peers not backed by a mercurial repository where lookup cannot return a node.
Allowing arbitrary symbols is necessary to make these extensions working with
4.7.
We should probably introduce a new API in Core to have these extensions to
work without abusing the lookup API. In the meantime, a small change to
restore compatibility in 4.7 seems in order.
Augie Fackler <augie@google.com> [Mon, 30 Jul 2018 10:18:29 -0400] rev 38752
tests: use inline Python instead of sed to add trailing whitespace
The sed invocation was failing on OS X and FreeBSD. I'm far too lazy
to diagnose that, so just use some inline Python to fix the build.