Ryan McElroy <rmcelroy@fb.com> [Tue, 07 Nov 2017 13:46:15 -0800] rev 35006
cat: test output path behvaior when target path does not exist
In the next patch, we will change the behavior of the cat command to create
output file parent directories before attempting to write the output file.
This patch documents the current unfortunate behavior.
Differential Revision: https://phab.mercurial-scm.org/D1331
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:06:49 +0530] rev 35005
py3: handle keyword arguments in hgext/shelve.py
Differential Revision: https://phab.mercurial-scm.org/D1324
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:06:23 +0530] rev 35004
py3: handle keyword arguments in hgext/uncommit.py
Differential Revision: https://phab.mercurial-scm.org/D1323
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:05:04 +0530] rev 35003
py3: handle keyword arguments in hgext/releasenotes.py
Differential Revision: https://phab.mercurial-scm.org/D1322
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:47 +0530] rev 35002
py3: handle keyword arguments in hgext/rebase.py
Differential Revision: https://phab.mercurial-scm.org/D1321
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:30 +0530] rev 35001
py3: handle keyword arguments in hgext/keyword.py
Differential Revision: https://phab.mercurial-scm.org/D1320
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:12 +0530] rev 35000
py3: handle keyword arguments in hgext/journal.py
Differential Revision: https://phab.mercurial-scm.org/D1319
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:03:54 +0530] rev 34999
py3: handle keyword arguments in hgext/histedit.py
Differential Revision: https://phab.mercurial-scm.org/D1318
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:03:27 +0530] rev 34998
py3: handle keyword arguments in hgext/hgk.py
Differential Revision: https://phab.mercurial-scm.org/D1317
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:03:08 +0530] rev 34997
py3: handle keyword arguments in hgext/graphlog.py
Differential Revision: https://phab.mercurial-scm.org/D1316
Augie Fackler <augie@google.com> [Tue, 07 Nov 2017 13:18:49 -0500] rev 34996
merge with stable
Augie Fackler <raf@durin42.com> [Tue, 07 Nov 2017 13:15:35 -0500] rev 34995
Added signature for changeset
cabc840ffdee
Augie Fackler <raf@durin42.com> [Tue, 07 Nov 2017 13:15:34 -0500] rev 34994
Added tag 4.4.1 for changeset
cabc840ffdee
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:46:41 +0900] rev 34993
templatekw: add verbosity keyword to select template by -q/-v/--debug flag
This can be used in conjunction with the ifeq() function.
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:31:13 +0900] rev 34992
templatekw: move loadkeyword() to bottom
loadkeyword() isn't a template keyword function.
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:05:04 +0900] rev 34991
help: hide phaseidx template keyword
I don't think it's great idea to expose the internal representation of phases.
Let's discourage use of the phaseidx keyword.
Augie Fackler <augie@google.com> [Tue, 07 Nov 2017 11:22:24 -0500] rev 34990
stable: merge with security patches
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 06 Nov 2017 22:32:41 -0800] rev 34989
subrepo: use per-type config options to enable subrepos
We change subrepos.allowed from a list of allowed subrepo types to
a combination of a master switch and per-type boolean flag.
If the master switch is set, subrepos can be disabled wholesale.
If subrepos are globally enabled, then per-type options are
consulted. Mercurial repos are enabled by default. Everything else
is disabled by default.
Augie Fackler <augie@google.com> [Mon, 06 Nov 2017 14:56:17 -0500] rev 34988
config: add some more documentation around why svn and git subrepos are off
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Nov 2017 21:51:42 +0900] rev 34987
subrepo: disable git and svn subrepos by default (BC) (SEC)
We have a security issue with git subrepos. I'm not sure if svn subrepo is
vulnerable, but it seems not 100% safe to allow writing arbitrary data into
a metadata directory. So for now, only hg subrepo is enabled by default.
Maybe we should improve the help to describe why git/svn subrepos are
disabled.
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Nov 2017 21:48:58 +0900] rev 34986
subrepo: extend config option to disable subrepos by type (SEC)
This allows us to minimize the behavior change introduced by the next patch.
I have no idea which config style is preferred in UX POV, but I decided to
get things done.
a) list: 'allowed = hg, git, svn'
b) sub option: 'allowed.hg = True' or 'allowed:hg = True'
c) per-type action: 'hg = allow', 'git = abort'
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Nov 2017 21:22:07 +0900] rev 34985
subrepo: add config option to reject any subrepo operations (SEC)
This is an alternative workaround for the
issue5730.
Perhaps this is the simplest way of disabling subrepo operations. It does
nothing clever, but just aborts if Mercurial starts accessing to a subrepo.
I think Greg's patch is more useful since it allows us to at least check
out the parent repository. However, that would be confusing if the default
is flipped to checkout=False and subrepos are silently ignored.
I don't like the config name 'allowed', but I couldn't get any better name.
Yuya Nishihara <yuya@tcha.org> [Fri, 03 Nov 2017 20:12:50 +0900] rev 34984
subrepo: disallow symlink traversal across subrepo mount point (SEC)
It wasn't easy to extend the pathauditor to check symlink traversal across
subrepos because pathauditor._checkfs() rejects a directory having ".hg"
directory. That's why I added the explicit islink() check.
No idea if this patch is necessary after we've fixed the
issue5730 by
splitting submerge() into planning and execution phases.
Yuya Nishihara <yuya@tcha.org> [Fri, 03 Nov 2017 19:17:25 +0900] rev 34983
tests: show symlink traversal across subrepo mount point (SEC)
Also adds a couple of tests where the auditor does work as expected.
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 06 Nov 2017 10:33:40 -0800] rev 34982
share: move config item declarations into core
These config items control share behavior that is implemented in core.
Since the functionality is implemented in core, extensions may
leverage it.
Mozilla has one such extension. And, it needs to access share.pool.
Before this patch, a devel warning regarding accessing an unregistered
config option would be issued unless the share extension were loaded.
Moving the registration of the config options to core fixes this.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 04 Nov 2017 23:39:54 -0400] rev 34981
morestatus: don't crash with different drive letters for repo.root and CWD
Previously, if there were unresolved files and the CWD drive was different from
the repo drive, `hg status -v` would page the normal status, followed by the
exception header. A stacktrace was waiting when the pager exited. The
underlying cause was the same as
f445b10dc7fb.
Unfortunately, I don't see any reasonable way to write a test this [1].
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-November/107401.html
Matt Harbison <matt_harbison@yahoo.com> [Fri, 03 Nov 2017 22:22:50 -0400] rev 34980
pathutil: add doctests for canonpath()
This is a followup to
f445b10dc7fb. Since there's no way to ensure that more
drive letters than C: exist, this seems like the only way to test it. This is
enough to catch the
f445b10dc7fb scenario, as well as CWD outside of the repo
when the path isn't prefixed with path/to/repo.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 02 Nov 2017 23:55:09 -0400] rev 34979
share: handle --relative shares to a different drive letter gracefully
This had the same problem as
f445b10dc7fb. Banning os.path.relpath() is
tempting, but the hint it provides is useful here.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:02:46 +0530] rev 34978
py3: handle keyword arguments in hgext/gpg.py
Differential Revision: https://phab.mercurial-scm.org/D1303
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:02:28 +0530] rev 34977
py3: handle keyword arguments in hgext/fetch.py
Differential Revision: https://phab.mercurial-scm.org/D1302
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:02:07 +0530] rev 34976
py3: handle keyword arguments in hgext/extdiff.py
Differential Revision: https://phab.mercurial-scm.org/D1301
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:01:45 +0530] rev 34975
py3: handle keyword arguments in hgext/commitextras.py
Differential Revision: https://phab.mercurial-scm.org/D1300
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:01:16 +0530] rev 34974
py3: handle keyword arguments in hgext/churn.py
Differential Revision: https://phab.mercurial-scm.org/D1299
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:53:10 +0530] rev 34973
py3: handle keyword arguments in hgext/children.py
Differential Revision: https://phab.mercurial-scm.org/D1298
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:52:47 +0530] rev 34972
py3: handle keyword arguments in hgext/blackbox.py
Differential Revision: https://phab.mercurial-scm.org/D1297
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:52:22 +0530] rev 34971
py3: handle keyword arguments in hgext/automv.py
Differential Revision: https://phab.mercurial-scm.org/D1296
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:51:57 +0530] rev 34970
py3: handle keyword arguments in hgext/amend.py
Differential Revision: https://phab.mercurial-scm.org/D1295
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Thu, 19 Oct 2017 23:13:57 +0900] rev 34969
run-tests: allow automatic test discovery when providing folder as argument
Currently `run-tests.py` automatically discovers test only in the current
directory if no argument is provided. This patch makes it possible to pass a
number of tests and folders as arguments.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 03 Nov 2017 14:47:37 +0100] rev 34968
revert: do not reverse hunks in interactive when REV is not parent (
issue5096)
And introduce a new "apply" operation verb for this case as suggested in
issue5096. This replaces the no longer used "revert" operation.
In interactive revert, when reverting to something else that the parent
revision, display an "apply this change" message with a diff that is not
reversed.
The rationale is that `hg revert -i -r REV` will show hunks of the diff from
the working directory to REV and prompt the user to select them for applying
(to working directory). This contradicts
dcc56e10c23b in which it was
decided to have the "direction" of prompted hunks reversed. Later on
[1], there was a broad consensus (but no decision) towards the "as to
be applied direction". Now that --interactive is no longer experimental
(
5910db5d1913), it's time to switch and thus we drop no longer used
"experimental.revertalternateinteractivemode" configuration option.
[1]: https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-November/090142.html
.. feature::
When interactive revert is run against a revision other than the working
directory parent, the diff shown is the diff to *apply* to the working directory,
rather than the diff to *discard* from the working copy. This is in line with
related user experiences with `git` and appears to be less confusing with
`ui.interface=curses`.
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 03 Nov 2017 10:32:38 -0500] rev 34967
merge with stable
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Fri, 03 Nov 2017 21:14:57 +0900] rev 34966
run-tests: endswith takes bytes as argument in python3, not str
Matt Harbison <matt_harbison@yahoo.com> [Thu, 02 Nov 2017 20:35:31 -0400] rev 34965
pathutil: use util.pathto() to calculate relative cwd in canonpath()
os.path.relpath() exploded if the 'root' and 'cwd' directories had different
drive letters. I noticed this in TortoiseHg when typing a fileset into the
filter, and it kept complaining until the closing '()' was typed. This was
reproducible on the command line with:
$ cd /d
$ hg -R /c/Users/Matt/Projects/hg files 'set:e'
Traceback (most recent call last):
...
File "mercurial\pathutil.pyc", line 182, in canonpath
File "ntpath.pyc", line 529, in relpath
ValueError: path is on drive c:, start on drive d:
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 16:50:57 +0900] rev 34964
patch: improve heuristics to not take the word "diff" as header (
issue1879)
The word "diff" is likely to appear in a commit message. Let's make it less
likely by requiring "diff -" for "diff -r" or "diff --git".
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:01:20 +0900] rev 34963
rebase: drop --style option
It existed from the very start, but I don't think the rebase command does
support log-like templates.
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Wed, 02 Aug 2017 13:27:45 +0900] rev 34962
run-tests: $TESTDIR can be something else than $PWD
$TESTDIR is expected to be the directory were the test lives, and is often used
to reference helper functions. However, it is now set to $PWD at test invocation
time, so if `run-tests.py` is called from another folder, the test will fail.
The solution is to force $TESTDIR to be the base directory of the test itself,
irrespective of where the runner is called from.
Boris Feld <boris.feld@octobus.net> [Wed, 01 Nov 2017 17:08:33 +0100] rev 34961
obsolete: activate effect-flag by default
Let's activate effect-flag by default as Evolve is experimental and in order
to gather feedback from users.
Boris Feld <boris.feld@octobus.net> [Mon, 30 Oct 2017 17:09:29 +0100] rev 34960
debug: print parsed bundle2 capabilities with debugcapabilities
The bundle2 capabilities are hard to read in their encoded form. We parse and
print them in a human friendly way.
Boris Feld <boris.feld@octobus.net> [Mon, 30 Oct 2017 17:08:16 +0100] rev 34959
debug: add a debugcapabilities commands
This new debugcommand prints the capabilities of any remote in a human friendly
way. Improved bundle2 capabilities support will be introduced in the next
changesets.
Augie Fackler <augie@google.com> [Mon, 30 Oct 2017 17:46:07 -0400] rev 34958
revert: no longer mark --interactive as experimental
We seem to have settled down on behavior changes here (nothing
matching revset `keyword(revert) and keyword(interactive)` since 4.2
was released), so let's go ahead and advertise this excellent feature.
.. feature:: revert --interactive
The revert command now accepts the flag --interactive to allow reverting
only some of the changes to the specified files.
Augie Fackler <augie@google.com> [Wed, 25 Oct 2017 23:01:54 -0400] rev 34957
ui: add configlist doctest to document a bit more of the whitespace behavior
I'm surprised this wasn't explicitly tested, so I added a test.
Kevin Bullock <kbullock+mercurial@ringworld.org> [Wed, 01 Nov 2017 17:19:45 -0500] rev 34956
merge stable into default
Kevin Bullock <kbullock@ringworld.org> [Wed, 01 Nov 2017 16:54:39 -0500] rev 34955
Added signature for changeset
0ccb43d4cf01
Kevin Bullock <kbullock@ringworld.org> [Wed, 01 Nov 2017 16:54:38 -0500] rev 34954
Added tag 4.4 for changeset
0ccb43d4cf01
Jun Wu <quark@fb.com> [Wed, 01 Nov 2017 14:22:26 -0700] rev 34953
test-dispatch: stabilize the test
When cwd is removed and `hg` is executed, some shells may run `getcwd`
before forking and executing, some may not do it, some may print a
different error message.
The test should be shell-independent so let's just avoid checking the error
message.
Differential Revision: https://phab.mercurial-scm.org/D1282
Kevin Bullock <kbullock+mercurial@ringworld.org> [Wed, 01 Nov 2017 15:34:22 -0500] rev 34952
internals: update test-help.t for config registrar copy-edit
Kevin Bullock <kbullock+mercurial@ringworld.org> [Wed, 01 Nov 2017 13:24:08 -0500] rev 34951
internals: copy-edit "register" -> "registrar" in configitem docs