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
Augie Fackler <augie@google.com> [Wed, 01 Nov 2017 16:07:33 -0400] rev 34950
merge with i18n
Wagner Bruna <wbruna@yahoo.com> [Wed, 01 Nov 2017 08:31:16 -0200] rev 34949
i18n-pt_BR: synchronized with
cab34bda259e
Matt Harbison <matt_harbison@yahoo.com> [Tue, 31 Oct 2017 23:09:29 -0400] rev 34948
help: minor copy editing for grammar
Yuya Nishihara <yuya@tcha.org> [Tue, 31 Oct 2017 22:37:30 +0900] rev 34947
configitems: relax warning about unwanted default value
The original condition was a bit harsh for extension authors since third-party
extensions need to preserve compatibility with older Mercurial versions, where
no defaults would be loaded from the configtable. So let's silence the warning
if the given default value matches, which should be harmless.
Kostia Balytskyi <ikostia@fb.com> [Thu, 26 Oct 2017 11:07:06 -0700] rev 34946
filemerge: pass a default value to _toolstr (
issue5718)
After a refactoring, _toolstr stopped having default="" as one of it's args,
therefore when called without a default it returns None and not "". This causes
concatenation to fail.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 31 Oct 2017 06:39:38 +0530] rev 34945
children: fix the log expansion of `hg children` in doc
`hg log -r children()` returns `hg: parse error: missing argument`.
Differential Revision: https://phab.mercurial-scm.org/D1269
Yuya Nishihara <yuya@tcha.org> [Sun, 29 Oct 2017 17:53:52 +0900] rev 34944
test-static-http: flush access log per request
It appears that stderr is fully buffered on Windows.
# no-check-commit because of log_message() function
Yuya Nishihara <yuya@tcha.org> [Sat, 28 Oct 2017 17:23:52 +0900] rev 34943
statichttprepo: do not use platform path separator to build a URL
It wouldn't work between Windows client and Unix server.
Siddharth Agarwal <sid0@fb.com> [Tue, 24 Oct 2017 11:15:30 -0700] rev 34942
merge: disable path conflict checking by default (
issue5716)
We shouldn't ship a severe perf regression in hg update for 4.4.
Differential Revision: https://phab.mercurial-scm.org/D1223
Siddharth Agarwal <sid0@fb.com> [Tue, 24 Oct 2017 11:14:38 -0700] rev 34941
merge: add a config option to disable path conflict checking
We've found a severe perf regression in `hg update` caused by the path conflict
checking code. The next patch will disable this by default.
Differential Revision: https://phab.mercurial-scm.org/D1222
Mark Thomas <mbthomas@fb.com> [Fri, 20 Oct 2017 05:53:35 -0700] rev 34940
dirstate: clean up when restoring identical backups
When a dirstate backup is restored, it is possible that no actual changes to
the dirstate have been made. In this case, the backup is still a hardlink
to the original dirstate.
Unfortunately, `os.rename` silently fails (nothing happens, and no error
occurs) when `src` and `dst` are hardlinks to the same file. As a result,
the backup is left lying around. Over time, these files accumulate.
When restoring dirstate backups, check if the backup and the dirstate are
the same file, and if so, just delete the backup.
Differential Revision: https://phab.mercurial-scm.org/D1201
Mark Thomas <mbthomas@fb.com> [Fri, 20 Oct 2017 05:53:33 -0700] rev 34939
tests: add a test demonstrating failure to clean up dirstate backups
Differential Revision: https://phab.mercurial-scm.org/D1200
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Oct 2017 23:01:56 -0400] rev 34938
tests: adjust hooks for Windows
I'm not sure why these weren't working on Windows. The failures were generally
in the style of:
- remote: phase-move:
cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: 1 -> 0
+ remote: "phase-move: $HG_NODE: $HG_OLDPHASE -> $HG_PHASE"
and
- abort: pretxnclose-bookmark.force-forward hook exited with status 1
- [255]
+ abort: pretxnclose-bookmark.force-public hook exited with status 255
+ [255]
These failures originated in
ee5f0d047b41::
f6d17075608f.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 20 Oct 2017 21:29:15 -0400] rev 34937
test-log-linerange: open binary file in binary mode
The '\n' characters were being translated on Windows, throwing off hg and git
hashes, as well as the file content in the diff.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 19 Oct 2017 23:16:48 -0400] rev 34936
test-arbitraryfilectx: stabilize for Windows
Previously, the second last test (context.arbitraryfilectx(..)) returned True on
Windows. I changed the repo setup sequence to import a patch, so that way the
repo would have a proper symlink. That made the last test fail, since it is
comparing files in wdir(), one of which is not the expected symlink.
Apparently the (feature !) line matching doesn't work well with (no-eol), so I
had to conditionalize the test instead of the output.
Durham Goode <durham@fb.com> [Sat, 28 Oct 2017 12:35:54 -0700] rev 34935
dirstate: remove excess attribute lookups for dirstate.status (
issue5714)
A recent refactor added a layer of abstraction to the dirstate which makes doing
things like 'foo in dirstate' now require some extra Python attribute lookups.
This is causing a 100ms slow down in hg status for mozilla-central.
The fix is to hoist the inner dict's functions onto the main class once the lazy
loading it complete, as well as store the actual functions before doing the
status loop (as is done for other such functions).
In my testing, it seems to address the performance regression, but we'll
need to see the perf run results to know for sure.
Differential Revision: https://phab.mercurial-scm.org/D1257
Durham Goode <durham@fb.com> [Thu, 26 Oct 2017 16:15:36 -0700] rev 34934
dirstate: avoid reading the map when possible (
issue5713) (
issue5717)
Before the recent refactor, we would not load the entire map until it was
accessed. As part of the refactor, that got lost and even just trying to load
the dirstate parents would load the whole map. This caused a perf regression
(
issue5713) and a regression with static http serving (
issue5717).
Making it lazy loaded again fixes both.
Differential Revision: https://phab.mercurial-scm.org/D1253