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.
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 00:37:33 +0200] rev 45147
tests: make pipes / PTYs non-inheritable in test-stdio.py
A following patch requires that to test closing the receiving end of the pipe /
PTYs.
Even for existing tests, it might be safer to make the lifetime of the pipes /
PTYs as short as possible.
Manuel Jacob <me@manueljacob.de> [Thu, 16 Jul 2020 23:49:04 +0200] rev 45146
util: enhance `nullcontextmanager` to be able to return __enter__ result
This makes its functionality and signature equivalent to Python 3.7’s
contextlib.nullcontext().
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 03:12:29 +0200] rev 45145
windows: augment docstring of `winstdout` class
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 09:20:48 +0200] rev 45144
discovery: change users of `outgoing.missingheads` to `outgoing.ancestorsof`
The attribute `missingheads` was recently renamed to `ancestorsof`, as it,
despite the old name, doesn’t contain the missing heads but the changesets that
were requested (including ancestors) for the outgoing operation.
Changing all the users enables to print a warning if the old name is used.
There is a good chance that some of the users are buggy because of the old name.
Changing them to use the new name makes it more obvious that they are buggy. All
users need to be reviewed for bugs. When sending patches for fixing them, the
change will be more obvious without having to explain again and again the
discrepancy of the old attribute name and what it actually contained.
Manuel Jacob <me@manueljacob.de> [Wed, 15 Jul 2020 11:38:54 +0200] rev 45143
discovery: fix docstring of `outgoing` class
Also, introduce a more correct name `ancestorsof` for what was named
`missingheads` before. For now, we just forward `ancestorsof` to `missingheads`
until all users are changed.
There were some mistakes in the old docstring / name:
* `missingheads` (new name: `ancestorsof`) contains the revs whose ancestors
are included in the outgoing operation. It may contain non-head revs and revs
which are already on the remote, so the name "missingheads" is wrong in two
ways.
* `missing` contains only ancestors of `missingheads`, so not *all nodes*
present in local but not in remote.
* `common` might not contain all common revs, e.g. not some that are not an
ancestor of `missingheads`.
It seems like the misleading name have fostered an actual bug (
issue6372),
where `outgoing.missingheads` was used assuming that it contains the heads of
the missing changesets.
Manuel Jacob <me@manueljacob.de> [Wed, 15 Jul 2020 09:51:11 +0200] rev 45142
discovery: weaken claim about returned common heads if ancestorsof are given
As the test case shows, the claim is not true in general.
Joerg Sonnenberger <joerg@bec.de> [Thu, 16 Jul 2020 19:48:49 +0200] rev 45141
cext: remove unused variables
Differential Revision: https://phab.mercurial-scm.org/D8760
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Jul 2020 14:18:18 -0400] rev 45140
phabupdate: allow resigning from revisions
Differential Revision: https://phab.mercurial-scm.org/D8756
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Jul 2020 14:14:58 -0400] rev 45139
phabupdate: allow revisions to be commandeered
Differential Revision: https://phab.mercurial-scm.org/D8755
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Jul 2020 14:13:16 -0400] rev 45138
phabupdate: allow revisions to be reopened
Differential Revision: https://phab.mercurial-scm.org/D8754
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Jul 2020 14:06:12 -0400] rev 45137
phabupdate: allow revisions to be marked "closed"
(Yes, the transaction name and final state in the comment here do differ.)
Differential Revision: https://phab.mercurial-scm.org/D8753
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Jul 2020 14:03:55 -0400] rev 45136
phabupdate: allows revisions to be marked "request-review"
Differential Revision: https://phab.mercurial-scm.org/D8752
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Jul 2020 13:27:55 -0400] rev 45135
phabupdate: allow revisions to be marked with "plan changes"
Differential Revision: https://phab.mercurial-scm.org/D8751
Joerg Sonnenberger <joerg@bec.de> [Thu, 16 Jul 2020 15:56:13 +0200] rev 45134
status: match category text in the option description
The ! category in the main status help text is defined as "missing", so
use the same text for the help text of --delete.
Differential Revision: https://phab.mercurial-scm.org/D8759
Martin von Zweigbergk <martinvonz@google.com> [Wed, 15 Jul 2020 13:19:09 -0700] rev 45133
purge: classify as a "working directory management" command in help
It seems to me that `hg purge` is clearly a "working directory
management" command and not a "repository management" command. The
working copy is all that's affected, after all; the repo is not
affected at all.
Differential Revision: https://phab.mercurial-scm.org/D8757
Martin von Zweigbergk <martinvonz@google.com> [Wed, 15 Jul 2020 22:24:02 -0700] rev 45132
extensions: make `hg help extensions` list disabled extensions with PyOxidizer
`setup.py` has a mechanism for generating a list of bundled extensions
and their documenation and putting it in a `hgext/__index__.py`
file. That file is then read from `extensions.py`, which makes `hg
help extensions` work in py2exe binaries. This patch makes it so
`setup.py` produces the `hgext/__index__.py` file also when called by
PyOxidizer.
Thanks to Matt Harbison for pointing out the existence of
`__index__.py`!
Differential Revision: https://phab.mercurial-scm.org/D8758
Joerg Sonnenberger <joerg@bec.de> [Wed, 08 Jul 2020 00:36:36 +0200] rev 45131
phases: sparsify phaseroots and phasesets
As final step of dealing with the holes in the phase numbers, make
phaseroots and phasesets both dictionaries indexed by the phase number.
Further adjust the interface of the C module by pushing the node to
revision mapping down as it is cheaper on the C side to deal with
revision numbers.
Overall, the patch series improves a no-change "hg up" for my NetBSD test
repository from 4.7s to 1.3s.
Differential Revision: https://phab.mercurial-scm.org/D8698
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 07 Jul 2020 14:01:12 +0530] rev 45130
extdiff: add some comments in diffrevs()
It was not obvious to understand the code so I added some comments.
Differential Revision: https://phab.mercurial-scm.org/D8690
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 07 Jul 2020 13:26:57 +0530] rev 45129
extdiff: add comments and minor variable renames diffpatch()
Some variable names were now confusing as we refactored the code in a separate
function. For example, `node1a` leads to ideas why `1a` and not `1`. The
variable storing path to patch file was named as `dirX` instead of `fileX`.
Renamed these variables and added couple of comments.
Differential Revision: https://phab.mercurial-scm.org/D8689
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 07 Jul 2020 13:24:13 +0530] rev 45128
extdiff: remove unrequired do3way argument to diffpatch()
When we are diffing patches, there is no 3 way diff.
Differential Revision: https://phab.mercurial-scm.org/D8688
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 07 Jul 2020 13:13:18 +0530] rev 45127
extdiff: refactor logic to diff revs of versions of files
Now that code for both cases, diffing patches or files is in separate function,
it will be better to refactor them more and understand.
Differential Revision: https://phab.mercurial-scm.org/D8687
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 07 Jul 2020 12:42:39 +0530] rev 45126
extdiff: refactor logic which does diff of patches
The current extdiff code is hard to understand on first look. Took me few hours
to grasp the code. Before adding more things, decided to do some refactoring.
Differential Revision: https://phab.mercurial-scm.org/D8686