Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Dec 2019 15:10:44 -0800] rev 43894
amend: use cmdutil.check_at_most_one_arg()
Differential Revision: https://phab.mercurial-scm.org/D7635
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Dec 2019 14:54:38 -0800] rev 43893
commit: use cmdutil.check_at_most_one_arg()
Differential Revision: https://phab.mercurial-scm.org/D7634
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Dec 2019 15:16:13 -0800] rev 43892
clone: extract helper for checking mutually exclusive args
We have some duplicated code for aborting if the user provided
mutually exclusive arguments. Extensions surely have more such
code. We also have duplicated translations and inconsistent output in
this area.
This patch introduces a simpler helper for checking if more than one
option among a given set was given on the command line. I've made the
clone code call the function to show that it works.
The function has no good way of checking arguments with hyphens in
them. I'll add that later if necessary. The function still won't be
applicable in all cases, but I think it's still better than nothing.
Differential Revision: https://phab.mercurial-scm.org/D7633
Kyle Lippincott <spectral@google.com> [Fri, 13 Dec 2019 14:40:52 -0800] rev 43891
dirstate: when calling rebuild(), avoid some N^2 codepaths
I had a user repo with 200k files in it. Calling `hg debugrebuilddirstate` took
tens of minutes (I didn't wait for it). In that situation,
changedfiles==allfiles, and both are lists. This meant that we had to run an
average of 100k comparisons, for each of 200k files, just to check whether a
file needed to have normallookup called (it always did), or drop.
While it's probably not a huge issue, in my very awkward synthetic benchmark I
wrote (not using a benchmark library or anything), I was seeing some slowdowns
for small-changedfiles and very-large-allfiles invocations, with an inflection
somewhere around 10 items in changedfiles (regardless of the size of allfiles);
above 10 items in changedfiles, the new code appears to always be faster. For
the case of 50k files in changedfiles and the same items in allfiles, I'm seeing
differences of 15s of just running comparisons vs. 0.003793s. I haven't bothered
to run a comparison of 200k items in changedfiles and allfiles. :)
Differential Revision: https://phab.mercurial-scm.org/D7665
Raphaël Gomès <rgomes@octobus.net> [Mon, 16 Dec 2019 11:28:14 +0100] rev 43890
rust-warnings: fix warnings in tests
It turns out that I also missed those warnings inside tests. This should be the
last of them. One day we will get rid of this interface anyway.
Differential Revision: https://phab.mercurial-scm.org/D7678
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 Dec 2019 12:41:06 +0100] rev 43889
relnotes: mention the merging of index and nodemap
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Tue, 10 Dec 2019 17:07:09 -0500] rev 43888
crecord: remove toggleamend
Previous commit removed its only calling site.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Tue, 10 Dec 2019 17:02:09 -0500] rev 43887
crecord: repurpose "a" key to toggle all selections (BC)
I really don't like "a". I keep accidentally hitting it when I
actually want "A", and then I'm suddenly in a state I don't want to be
in. There's a big wall of text telling me that I've turned amend mode
on or off (which one was I orginally in?), and this seems very
useless.
If I wanted to amend or not, I would have chosen that from the
command-line, not change my mind after I've already started picking
hunks apart. Furthermore, for most uses of the hunk selector (revert,
uncommit, shelve/unshelve), this amend toggle doesn't make sense.
It seems much better to repurpose this key to be a "weaker" version of
"A". It toggles all selections. This is pretty harmless if hit
accidentally, (can just hit "a" again to toggle everything and undo
it), and has immediate visual feedback that something happened: all
the x's and blank spaces get switched around. And unlike with amend,
the current flipped state is also immediately visible without having
to read a wall of text.
I'm calling this a BC, however, because somewhere, someone out there
has probably really fallen in love with the old use of "a" and will
get angry that we took it away.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 12 Dec 2019 11:41:28 -0500] rev 43886
hgweb: fix error in docstring
Despite the subtle semantic difference, this sentence really meant to
say "overridden", not "overwritten".
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 12 Dec 2019 11:37:30 -0500] rev 43885
crecord: rewrite help string to avoid mentioning "crecord"
Despite its heritage, "crecord" is now mostly Mercurial-internal
jargon. I find it better to call it "the curses hunk selector".
Also slightly rewrote the part about which commands can use it. While
I do believe that commit, shelve, and revert are the only commands in
core that can use it, Evolve also adds at least amend and uncommit to
the list.