Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 18 Mar 2020 21:27:45 +0100] rev 44559
byteify-string: resolve symlink before byteifying
Otherwise the script turns symlinks into regular files.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Mar 2020 16:25:22 -0700] rev 44558
tests: simplify test-fix-topology.t slightly by using a `(case !)`
Differential Revision: https://phab.mercurial-scm.org/D8283
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Mar 2020 14:50:00 -0700] rev 44557
tests: fix rebase test broken by earlier cleanup
It turns out I broke one of the rebase tests in
dd2833e4d660 (tests:
use drawdag in test-rebase-collapse.t, 2018-03-18) and didn't notice
until now.
Differential Revision: https://phab.mercurial-scm.org/D8277
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Mar 2020 16:57:38 -0700] rev 44556
rebase: accept multiple --base arguments (BC)
Same reasoning as for the previous patch. Rebase has worked well with
`--base 'A + B'` since
51e7c83e05ee (rebase: calculate ancestors for
--base separately (
issue5420), 2016-11-28).
Differential Revision: https://phab.mercurial-scm.org/D8293
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Mar 2020 16:39:32 -0700] rev 44555
rebase: accept multiple --source arguments (BC)
I think it's a little surprising that `hg rebase -s A -s B` rebases
only `B::` and ignores `A`. That's because the `-s` flag is not a
repeated flag. This patch makes it a repeated flag.
Differential Revision: https://phab.mercurial-scm.org/D8292
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Mar 2020 19:29:02 -0700] rev 44554
rebase: mention -r argument in synopsis
I'm guessing that we simply forgot to mention it there. I was
wondering if maybe `-r` was experimental as long as evolution is, but
that doesn't seem to be the case (`-r` is not marked experimental).
Differential Revision: https://phab.mercurial-scm.org/D8295
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Mar 2020 16:36:31 -0700] rev 44553
rebase: remove unused defaults argument values from _definedestmap()
The caller always provides values for these arguments.
Differential Revision: https://phab.mercurial-scm.org/D8291
Matt Harbison <matt_harbison@yahoo.com> [Sun, 16 Feb 2020 17:47:20 -0500] rev 44552
phabricator: add a config knob to create obsolete markers when importing
This too can get a tristate switch if desired. But if so, that needs to happen
by having evolve add the option.
Differential Revision: https://phab.mercurial-scm.org/D8138
Matt Harbison <matt_harbison@yahoo.com> [Sun, 16 Feb 2020 17:17:41 -0500] rev 44551
phabricator: add a config knob to import in the secret phase
For my use anyway, it's better to have a config knob that's always set than to
try to remember a switch. But we can add a tristate switch if desired.
Differential Revision: https://phab.mercurial-scm.org/D8137
Matt Harbison <matt_harbison@yahoo.com> [Sun, 16 Feb 2020 16:13:36 -0500] rev 44550
phabricator: add a `phabimport` command
I've had `alias.phabimport = $hg phabread --stack $1 | $hg import --bypass -`
for a while now, and I suspect others do too. That's limited though, in that it
can't use the information on Phabricator to restore it in the original location,
so I'm making it a first class command.
This doesn't do anything ambitious like that- this is mostly a simplification of
`hg import` to get the equivalent of the alias mentioned above. The `--bypass`
option is hardcoded to be enabled and the message about amending rejects
dropped (rejects aren't created with `--bypass`), because editing patches on
Phabricator seems like an unusual workflow.
This will need other options, like `--obsolete` and `--secret`. I think these
would be more useful as config settings, as I imagine the workflows are pretty
fixed depending on roles. Reviewers who don't queue patches probably never want
`--obsolete`, but may need `--secret`. Reviewers who do will want the former,
but not the latter. I left `--stack` as an option, but that should probably be
a config knob too (or at least default to on)- if the point of this is to avoid
rejects, it doesn't make sense to skip dependencies in most cases.
Evolve is going to need a fix to its wrapping of `cmdutil.tryimportone()`, as it
currently assumes `opts` has an `obsolete` key. It's worked around for now.
Differential Revision: https://phab.mercurial-scm.org/D8136
Raphaël Gomès <rgomes@octobus.net> [Thu, 12 Mar 2020 10:14:40 +0100] rev 44549
rust: update the README with more up-to-date and thorough information
Differential Revision: https://phab.mercurial-scm.org/D8274
Joerg Sonnenberger <joerg@bec.de> [Fri, 08 Dec 2017 02:29:02 +0100] rev 44548
transactions: convert changes['phases'] to list of ranges
Consecutive revisions are often in the same phase, especially public
revisions. This means that a dictionary keyed by the revision for the
phase transitions is highly redundant. Build a list of (range, (old,
new)) entries instead and aggressively merge ranges with the same
transition. For the test case in
issue5691, this reduces memory use by
~20MB.
Differential Revision: https://phab.mercurial-scm.org/D8125