Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 14:44:58 +0530] rev 45159
mergestate: rename addpath() -> addpathonflict() to prevent confusion
addpath() seems to imply that we are adding a new path/entry to the mergestate.
Differential Revision: https://phab.mercurial-scm.org/D8715
Manuel Jacob <me@manueljacob.de> [Sat, 18 Jul 2020 12:35:55 +0200] rev 45158
windows: don’t set `softspace` attribute in `winstdout`
Python 2 file objects have the `softspace` attribute
(https://docs.python.org/2/library/stdtypes.html#file.softspace), which is used
by the print statement to track its internal state. The documentation demands
from file-like objects only that the attribute is writable and initialized to
0. Method `file.write()` sets it to 0, but this is not documented.
Historically, sys.stdout was replaced by an instance of the `winstdout` class,
so it needed to behave exactly the same (the softspace fix was introduced in
705278e70457). Nowadays we don’t replace sys.stdout and don’t use the print
statement on `winstdout` instances, so we can safely drop it.
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 14:58:22 +0200] rev 45157
windows: handle file-like objects without isatty() method
Copying the function is not nice, but moving around stuff to avoid the
circular import didn’t seem to be worth the effort.
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 08:21:31 +0200] rev 45156
exchange: check actually missing revs for obsolete / unstable revs (issue6372)
The previous code was using `outgoing.ancestorsof`, which was originally called
`outgoing.missingheads` although not containing the missing heads. This
confusion was probably the reason why the buggy code was written.
The actually outgoing changesets are stored in `outgoing.missing`. By checking
all outgoing changesets, we avoid the problem and can show the list of all
obsolete or unstable changesets, which is more helpful for the user.
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 07:59:20 +0200] rev 45155
tests: test that push doesn’t complain about unstable changesets if no changes
When there’re no outgoing changes, push doesn’t complain about unstable
changesets.
There is currently a bug (see issue6372) that causes that there is an abort on
push when the outgoing changes contain another changeset even if that is not
obsolete or unstable. A test case and fix for that is sent in the next patch.
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Fri, 17 Jul 2020 03:53:19 -0700] rev 45154
diff: move no-eol text constant to a common location
Differential Revision: https://phab.mercurial-scm.org/D8763
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Fri, 17 Jul 2020 02:31:42 -0700] rev 45153
revert: fix interactive reverting of end-of-file newline changes
The chunk reversal used by `revert -i` in Curses mode was not taking this case
into account.
Differential Revision: https://phab.mercurial-scm.org/D8762
Matt Harbison <matt_harbison@yahoo.com> [Thu, 16 Jul 2020 14:16:53 -0400] rev 45152
phabricator: clarify the multiple heads/roots error message for phabsend
As pointed out in followup feedback for c1c922391314, it's confusing to say
there are multiple items and then only list one.
Differential Revision: https://phab.mercurial-scm.org/D8761
Daniel Ploch <dploch@google.com> [Tue, 14 Jul 2020 13:35:54 -0700] rev 45151
error: normalize "unresolved conflicts" error messages with a custom class
Differential Revision: https://phab.mercurial-scm.org/D8713
Daniel Ploch <dploch@google.com> [Mon, 13 Jul 2020 16:42:44 -0700] rev 45150
error: unify the error message formats for 'rebase' and 'unshelve'
Differential Revision: https://phab.mercurial-scm.org/D8730
Augie Fackler <augie@google.com> [Wed, 01 Apr 2020 08:42:00 -0500] rev 45149
debugcommands: create new debugantivirusrunning command
This writes the EICAR test file to .hg/cache, in an attempt to trigger
an AV scanner's scanning engine. This should let us (in theory) detect
some cases when a user's slowness is a result of AV scanning.
Differential Revision: https://phab.mercurial-scm.org/D8353
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 03:28:52 +0200] rev 45148
windows: always work around EINVAL in case of broken pipe for stdout / stderr
In 29a905fe23ae, I missed the fact that the `winstdout` class works around two
unrelated bugs (size limit when writing to consoles and EINVAL in case of
broken pipe) and that the latter bug happens even when no console is involved.
When writing a test for this, I realized that the same problem applies to
stderr, so I applied the workaround for EINVAL to both stdout and stderr.
The size limit is worked around in the same case as before (consoles on Windows
on Python 2). For that, I changed the `winstdout` class.