Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 23 Nov 2020 14:15:26 +0530] rev 46019
share: show warning if share is outdated while source supports share-safe
Previous patches in the series and some which are already committed implements
share safe functionality where config and requirements will be shared too.
Rolling this feature has a problem that existing shares may never upgrade as
they will never learn about the new config. To help the transition, we show a
warning message if the share source supports share-safe mechanism. This provides
the source repo ability to upgrade and pass on the message to shares that you
should reshare and upgrade too.
Differential Revision: https://phab.mercurial-scm.org/D9369
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Oct 2020 18:57:55 +0530] rev 46018
upgrade: add support to downgrade share safe mode
In previous patch we added support to upgrade current repository to use share
safe mode. This patch adds support to downgrade to remove share-safe mode.
Differential Revision: https://phab.mercurial-scm.org/D9358
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 25 Jun 2020 13:13:21 +0530] rev 46017
upgrade: add support for experimental safe share mode
Recently we introduce the share-safe functionality which makes shares share
requirements and config of share source. This patch adds support to
`debugupgraderepo` command to upgrade repository to share-safe mode when
`format.exp-share-safe` config is enabled.
Differential Revision: https://phab.mercurial-scm.org/D9144
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 30 Nov 2020 14:11:03 +0530] rev 46016
chgserver: catch RepoError while loading configuration
Recent share safe work introduced functionality to read share source config file
on dispatch. This can result in RepoError while reading config file as the
shared source might not be present.
`test-share.t#safe` was failing with chg earlier because of this.
Differential Revision: https://phab.mercurial-scm.org/D9462
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Nov 2020 16:59:40 -0500] rev 46015
registrar: clarify the documentation about some byte strings being required
I *thought* these needed to be byte strings, but didn't remember and had to
search out examples.
Differential Revision: https://phab.mercurial-scm.org/D9489
Kyle Lippincott <spectral@google.com> [Mon, 30 Nov 2020 12:30:58 -0800] rev 46014
match: skip walking up the directory hierarchy if the number of pats are small
Previously, we would receive a path like abc/def/ghi and "walk up" the directory
hierarchy, checking abc/def, abc, and `b''` to see if they were in the set of
prefixes that this matcher covered. We did this indiscriminately - we generated
all of these paths even if the set of prefixes the matcher covered was
completely empty, which is the case for a lot of repos at my company (the narrow
matcher we use is usually non-recursive).
This brings the time for a rebase in one of my repos from 12.20s to 10.87s. In
this particular repo, this is entirely due to the `len(prefix_set) == 0` check,
as I do not have any recursive patterns in the narrowspec.
Differential Revision: https://phab.mercurial-scm.org/D9488
Joerg Sonnenberger <joerg@bec.de> [Tue, 01 Dec 2020 22:19:01 +0100] rev 46013
relnotes: document better memory use for unbundle
Differential Revision: https://phab.mercurial-scm.org/D9481
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Nov 2020 14:06:45 +0100] rev 46012
upgrade: add an explicite --filelogs arguments
This make it possible to select no revlog for upgrade, which is useful for some
upgrade target or in some specific cases (eg: persistent-nodemap or share-safe
update).
Differential Revision: https://phab.mercurial-scm.org/D9468
Simon Sapin <simon-commits@exyr.org> [Mon, 30 Nov 2020 19:26:54 +0100] rev 46011
rhg: add a test for --rev with a hex changeset ID
And fix error message formatting
Differential Revision: https://phab.mercurial-scm.org/D9478
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 01 Dec 2020 02:07:15 +0100] rev 46010
upgrade: move optimisation to something more declarative
This is not great yet, but still better than the previous state. This get use
one step closer to having all the possible "actions" clearly declared and moved
in a dedicated module.
Differential Revision: https://phab.mercurial-scm.org/D9475
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Nov 2020 23:54:25 +0100] rev 46009
upgrade: capitalize the `deficiency` constant
I am reworking this code and moving to the current naming scheme help
readability.
Differential Revision: https://phab.mercurial-scm.org/D9474
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Nov 2020 23:52:29 +0100] rev 46008
upgrade: capitalize the `deficiency` constant
I am reworking this code and moving to the current naming scheme help
readability.
Differential Revision: https://phab.mercurial-scm.org/D9473
Martin von Zweigbergk <martinvonz@google.com> [Mon, 30 Nov 2020 09:47:46 -0800] rev 46007
tests: set old git default branch name for compatibility
Git's default branch name has changed on my machine (from "master" to
"main"). Let's set the old name in our tests so we're compatible with
both defaults (and maybe still compatible with Git versions that don't
know about the config option).
Differential Revision: https://phab.mercurial-scm.org/D9470
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Nov 2020 14:15:55 +0100] rev 46006
heptapod-ci: automatically refresh existing phabricator Diff on push
If a changeset have been submitted to Phabricator and a new version is pushed to
heptapod, we should refresh the state on Phabricator. If we do not do this, they
are a risk of an older version being applied from Phabricator. In this situation
content-divergence will be (rightfully) detected by evolution.
We only refresh the Diff if the test pass, to avoid updating Phabricator with
broken content.
Differential Revision: https://phab.mercurial-scm.org/D9451
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Nov 2020 14:11:54 +0100] rev 46005
contrib: add a small script to refresh all diff in the current stack
This will be useful to introduce automatic refresh through heptapod.
Differential Revision: https://phab.mercurial-scm.org/D9460
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 30 Nov 2020 14:48:02 +0530] rev 46004
tests: conditionalize return code on chg in test-config.t
If there is any error while reading config, chg just returns 255 instead of 30.
It seems to me that we cannot conditionalize only return codes in output using
trailing `(chg !)` and hence used testcases.
The test was failing with chg but after this patch, it now passes.
Differential Revision: https://phab.mercurial-scm.org/D9463
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 27 Nov 2020 21:32:42 +0530] rev 46003
tests: update test-chg.t with output change
Since this part of tests is only run with chg, hence it didn't get updated
when the error message changed.
Differential Revision: https://phab.mercurial-scm.org/D9414
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Nov 2020 14:33:58 +0100] rev 46002
rust-format: pin the formatted to a specific nightly version
Version 1.50 change the way rust-format behave. We pin the version for now, we
can figure out something better later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Nov 2020 11:22:28 +0100] rev 46001
copies: clarify the return of _merge_copies_dict
I misused that function twice in the past few days, so lets clarify the API.
Differential Revision: https://phab.mercurial-scm.org/D9418
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Nov 2020 10:38:46 +0100] rev 46000
copies: avoid unwanted side effect from one branch to another
Without this copy, change in a one descendant branch (With "remove" change
only) could affect computation on another descendant branches.
This was not caugh by the test because the test graph are "too simple". I
started writing more test in that regards, but I a submitting this changes
earlier because I want to get more code landed to allow other optimisation work
to happens.
Differential Revision: https://phab.mercurial-scm.org/D9416
Raphaël Gomès <rgomes@octobus.net> [Thu, 26 Nov 2020 09:54:16 +0100] rev 45999
rhg: use `format_bytes!` for error messages
This change also includes a formatting changing with the new `rustfmt` version,
but I'm expecting it to have already been applied in another patch by the time
this lands.
Differential Revision: https://phab.mercurial-scm.org/D9407
Mathias De Mare <mathias.de_mare@nokia.com> [Mon, 30 Nov 2020 10:18:36 +0100] rev 45998
packaging: don't use plain 'python' if another python has been specified
Before this change, packaging on CentOS 8 failed because 'python'
is used instead of 'python3'.
Change was tested with:
- make docker-centos7
- make docker-centos8
- make docker-ubuntu-bionic
Differential Revision: https://phab.mercurial-scm.org/D9464
Matt Harbison <matt_harbison@yahoo.com> [Thu, 26 Nov 2020 02:00:00 -0500] rev 45997
packaging: add pygit2 to the py3 Windows installers
This is needed to be able to use the git extension.
The extension no longer complains about the library being not installed, but
`hg log -r .` on a repo that works in WSL yielded a TypeError:
...
File "mercurial.hg", line 188, in _peerorrepo
File "mercurial.localrepo", line 3224, in instance
File "mercurial.localrepo", line 623, in makelocalrepository
File "hgext.git", line 117, in _makestore
File "hgext.git", line 48, in __init__
TypeError: Repository unable to unpack backend.
Differential Revision: https://phab.mercurial-scm.org/D9405
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Nov 2020 12:40:28 +0100] rev 45996
upgrade: directly use the upgrade action constant
This make the code simpler and will make it simpler to add more case in the
future.
Differential Revision: https://phab.mercurial-scm.org/D9467
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Nov 2020 12:24:36 +0100] rev 45995
upgrade: rename UPGRADE_FILELOG to UPGRADE_FILELOGS
They are multiple filelog to upgrade, so this seems more accurate.
Differential Revision: https://phab.mercurial-scm.org/D9466
Simon Sapin <simon-commits@exyr.org> [Mon, 23 Nov 2020 12:54:46 +0100] rev 45994
bisect: add `-G` to an `hg log` command in a test
This helps readers see what shape of DAG to expect
Differential Revision: https://phab.mercurial-scm.org/D9373
Simon Sapin <simon-commits@exyr.org> [Mon, 23 Nov 2020 12:45:39 +0100] rev 45993
bisect: refactor to work on a list of revspecs
This will allow adding a `--rev` flag that can be passed more than once.
Differential Revision: https://phab.mercurial-scm.org/D9372
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Nov 2020 10:35:42 +0100] rev 45992
copies: simplify the call to _merge_copies_dict
Let's get the argument into the right order, then call the function once.
Differential Revision: https://phab.mercurial-scm.org/D9417
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Nov 2020 10:49:32 +0100] rev 45991
copies: fast path no-op merge
If the two sides of the merge are the same (they come an unaltered common
ancestors) we don't need any merging.
Differential Revision: https://phab.mercurial-scm.org/D9415
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Oct 2020 01:49:04 +0200] rev 45990
copies-rust: encapsulate internal sets on `changes`
The goal is to eventually stop creating the underlying set. So we need to
encapsulate the call first.
Differential Revision: https://phab.mercurial-scm.org/D9306