Augie Fackler <augie@google.com> [Wed, 01 Aug 2018 10:23:57 -0400] rev 38766
merge with stable
Augie Fackler <raf@durin42.com> [Wed, 01 Aug 2018 10:20:19 -0400] rev 38765
Added signature for changeset
33ac6a72308a
Augie Fackler <raf@durin42.com> [Wed, 01 Aug 2018 10:20:18 -0400] rev 38764
Added tag 4.7 for changeset
33ac6a72308a
Boris Feld <boris.feld@octobus.net> [Wed, 01 Aug 2018 10:23:48 +0200] rev 38763
revlog: fix descendant deprecated method
Fix the descendant deprecated method introduced earlier in this cycle.
This was caught by Yuya, thank you.
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 31 Jul 2018 13:46:57 -0700] rev 38762
ui: remove commands.status.terse=u from ui.tweakdefaults
commands.status.terse=u can add significant overhead when operating
on large repositories. Using the Firefox repository:
HGRCPATH= hg --time status
time: real 1.340 secs (user 0.960+0.000 sys 0.380+0.000)
HGRCPATH= hg --time --config commands.status.terse=u status
time: real 2.420 secs (user 2.070+0.000 sys 0.360+0.000)
HGRCPATH= hg --time --config extensions.fsmonitor= status
time: real 0.080 secs (user 0.050+0.010 sys 0.040+0.000)
HGRCPATH= ~/src/hg/hg --time --config extensions.fsmonitor= --config commands.status.terse=u status
time: real 2.470 secs (user 2.080+0.000 sys 0.390+0.000)
The performance regression - especially when fsmonitor is being
used - is too much to stomach for the 4.7 release. We've decided
to remove commands.status.terse=u from ui.tweakdefaults until we
can improve its performance, hopefully in the 4.8 cycle.
This commit effectively backs out
6acf41bb8d40.
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.
Augie Fackler <augie@google.com> [Mon, 30 Jul 2018 09:50:32 -0400] rev 38751
context: add missing b prefix
This fixes
mercurial/context.py:593: SyntaxError: cannot mix bytes and nonbytes literals (context.py, line 593)
in Python 3.
Yuya Nishihara <yuya@tcha.org> [Sat, 28 Jul 2018 16:36:35 +0900] rev 38750
doctest: convert matcher root to native path
Otherwise it wouldn't be caught by a fast path of pathutil.canonpath(), and
fall back to file identity checks.
Yuya Nishihara <yuya@tcha.org> [Mon, 30 Jul 2018 21:26:55 +0900] rev 38749
test-fileset: make con.xml in output conditionally available
Yuya Nishihara <yuya@tcha.org> [Sat, 28 Jul 2018 15:52:03 +0900] rev 38748
test-obsmarker-template: run mkcommit in subshell to isolate envvars
I don't know if it is a feature or a bug, but it appears that environment
variables passed to a shell function persist on /bin/sh.
Yuya Nishihara <yuya@tcha.org> [Sat, 28 Jul 2018 15:49:51 +0900] rev 38747
test-obsmarker-template: add missing HGENCODING=latin-1
It just worked by accident on some Linux sh.
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 26 Jul 2018 10:06:46 -0700] rev 38746
gitweb: add link to graph
error.tmpl wasn't consistent with other templates in gitweb in
that it was missing a "graph" link. This commit makes it consistent.
Cédric Krier <ced@b2ck.com> [Wed, 25 Jul 2018 10:05:24 +0200] rev 38745
hgweb: strip trailing '/' in apppath before appending '/static/' (
issue5943)
Differential Revision: https://phab.mercurial-scm.org/D3978
Boris Feld <boris.feld@octobus.net> [Fri, 20 Jul 2018 09:08:20 +0200] rev 38744
config: rename `revlog` section into `storage`
The idea was suggested by Gregory Szorc on IRC. It is more generic and seems
better. It is probably best to rename the section before it ever makes into an
official (non-rc) release.
The only config option currently in this section have been prefixed with
`revlog` to clarify it applies to `revlog` related storage.
Augie Fackler <raf@durin42.com> [Thu, 19 Jul 2018 14:17:26 -0400] rev 38743
Added signature for changeset
e90130af47ce
Augie Fackler <raf@durin42.com> [Thu, 19 Jul 2018 14:17:25 -0400] rev 38742
Added tag 4.7rc0 for changeset
e90130af47ce
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 19 Jul 2018 11:10:48 -0700] rev 38741
configitems: restore alias for format.aggressivemergedeltas
913ca175c4ae broke BC by dropping support for reading
format.aggressivemergedeltas. Let's restore it.
Differential Revision: https://phab.mercurial-scm.org/D3966
Yuya Nishihara <yuya@tcha.org> [Thu, 19 Jul 2018 21:36:24 +0900] rev 38740
worker: call selector.close() to release polling resources
Augie Fackler <augie@google.com> [Thu, 19 Jul 2018 13:55:54 -0400] rev 38739
release: merge default into stable for 4.7 release freeze
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 19 Jul 2018 22:30:37 +0530] rev 38738
histedit: drop --no-backup option
Dropping this option because now we have a better option
than passing --no-backup flag every time, now user can
set a config in hgrc:
[ui]
history-editing-backup = False
This config aims to operate on every history editing command and
it is still work in progress. As yuya suggessted it probably to
late to add full support this config, so making this as
an experimental config.
Differential Revision: https://phab.mercurial-scm.org/D3965
Boris Feld <boris.feld@octobus.net> [Thu, 19 Jul 2018 10:35:29 +0200] rev 38737
aggressivemergedelta: document rename and move to `revlog` section
The config does not follow our naming guideline and "Aggressive" is probably a
word to keep away from users.
The option does not truly fit in the `format` section. It can be turned on and
off for existing repository without much consequence regarding compatibility.
A new `revlog` option is created to control behavior related to revlog writing
and reading. We can see multiple other config options that could be migrated
there.
* format.maxchainlen
* experimental.mmapindexthreshold
* experimental.sparse-read.density-threshold (in an updated form)
* experimental.sparse-read.min-gap-size (in an updated form)
In addition, we can foresee at least a couple of sparse-revlog related option
coming too (to reduce delta chain length and increase snapshot reuse)
These two extra options might fit there too. Unless we want to create a
section dedicated to caches and performance.
* format.chunkcachesize
* format.manifestcachesize
For now, we only migrate `optimize-delta-parent-choice` since it is getting
out of experimental. It is too close to the release to move the other one. In
addition, we still lack proper the prioritization of alias that would help
renaming them without bad consequence for users.
(Not fully happy about the `revlog` name but could not find better).