Ludovic Chabant <ludovic@chabant.com> [Tue, 29 Jan 2019 22:59:15 -0800] rev 41501
extdiff: add --per-file and --confirm options
The new options lets the user control how the external program is run.
By default, Mercurial passes the 2 snapshot directories as usual, but
it can also run the program repeatedly on each file's snapshot pair,
and optionally prompt the user each time.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 30 Jan 2019 19:20:31 -0500] rev 41500
run-tests: sort the skip, failure and error lists in the final output
This will help keep the lists consistent, for comparison across runs.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 30 Jan 2019 17:07:58 -0800] rev 41499
tests: add Python 3 output for test-remotefilelog-gc.t
Python 3 raises a slightly different error on invalid paths.
Differential Revision: https://phab.mercurial-scm.org/D5773
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 30 Jan 2019 17:22:07 -0800] rev 41498
hg: raise Abort on invalid path
Currently, some os.path functions when opening repositories may
raise an uncaught TypeError or ValueError if the path is invalid.
Let's catch these exceptions and turn them into an Abort for
convenience.
Differential Revision: https://phab.mercurial-scm.org/D5772
Augie Fackler <augie@google.com> [Wed, 30 Jan 2019 19:29:32 -0500] rev 41497
subrepo: bytes/str cleanups on Git support
Git subrepo tests now pass on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D5768
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 30 Jan 2019 16:54:34 -0800] rev 41496
tests: compare against a bytes in test-lock.py
skip-blame: just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D5771
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 30 Jan 2019 16:53:12 -0800] rev 41495
tests: perform a shallow copy instead of a deep copy
Python 3 can't perform a deep copy because it looks like symbols
in the locals() namespace are not deep-copyable. For the curious,
somehow the deepcopy() is attempting to copy objects attached to
the unittest.* functions for the running test!
We don't use deepcopy() anywhere in the code base and a shallow
object copy should be sufficient to test lock copying.
Actually, I'm not sure why we even test this, as I couldn't find
copy.copy() being used for lock copying either. Who knows.
Differential Revision: https://phab.mercurial-scm.org/D5770
Augie Fackler <augie@google.com> [Wed, 30 Jan 2019 18:49:17 -0500] rev 41494
tests: make and use a new `svnurlof.py` helper for constructing svn urls
The previous trick of a Python oneliner and some subshells is too hard
to make portable, and this lets us consolidate some Windows-specific
logic down to a single place.
Differential Revision: https://phab.mercurial-scm.org/D5766
Augie Fackler <augie@google.com> [Wed, 30 Jan 2019 17:24:57 -0500] rev 41493
server: skip logging of ECONNRESET
I believe this was exposed by 5492dc20, because the sending of the 500
would have already failed and prevented this logging. On Python 3,
this will be a ConnectionResetError, which is a subtype of OSError,
which is why we check for both OSError and socket.error.
Bonus: this fixes a race in test-hgweb.t where sometimes the
ECONNRESET wouldn't happen, because now we just don't log those
errors.
Differential Revision: https://phab.mercurial-scm.org/D5764
Augie Fackler <augie@google.com> [Wed, 30 Jan 2019 18:32:11 -0500] rev 41492
git: a little pycompat.bytestring() love to make this code work in py3
Differential Revision: https://phab.mercurial-scm.org/D5765