Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Dec 2020 20:02:35 +0100] rev 46012
tests: use the right python when running dummyssh for narrow
some plateform no longer have a `python` executable.
Differential Revision: https://phab.mercurial-scm.org/D9504
Kyle Lippincott <spectral@google.com> [Wed, 02 Dec 2020 11:05:53 -0800] rev 46011
copies: avoid materializing a full directory map during copy tracing
Materializing a full copy of every directory in a treemanifest repo can be quite
expensive, even with a narrow matcher. For flat manifest repos, this should be
equivalent - it will still materialize (and cache) a dict of all of the dirs
inside of the manifest object, we just don't get a copy of it.
In a repo I have here, this brings the time for a simple rebase from 11.197s to
4.609s.
Differential Revision: https://phab.mercurial-scm.org/D9503
Martin von Zweigbergk <martinvonz@google.com> [Wed, 02 Dec 2020 15:39:01 -0800] rev 46010
rebase: clear merge state when aborting in-memory merge on dirty working copy
Differential Revision: https://phab.mercurial-scm.org/D9509
Martin von Zweigbergk <martinvonz@google.com> [Wed, 02 Dec 2020 15:15:16 -0800] rev 46009
tests: show that in-memory rebase leaves state when working copy is dirty
When in-memory rebase falls back to on-disk rebase, it checks if the
working copy is dirty. If it is, it aborts the rebase. However, it
leaves the rebase state on disk. I broke it in
feffeb18d412 (rebase:
teach in-memory rebase to not restart with on-disk rebase on conflict,
2020-09-18).
Differential Revision: https://phab.mercurial-scm.org/D9508
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 27 Nov 2020 18:32:20 +0530] rev 46008
helptext: document share safe functionality in `hg help config -v`
If share safe functionality is enabled, we read `.hg/hgrc' of shared source.
Differential Revision: https://phab.mercurial-scm.org/D9413
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 27 Nov 2020 18:28:14 +0530] rev 46007
helptext: mention in `hg help config` that `.hg/hgrc-not-shared` is consulted
Recently we added `.hg/hgrc-not-shared` which is a config file which won't be
shared with shares when share-safe mode is enabled. Irrespective of whether
we are using share-safe or not, we consult this file now.
Let's document that.
Differential Revision: https://phab.mercurial-scm.org/D9412
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 27 Nov 2020 18:11:47 +0530] rev 46006
share: add documentation about share-safe mode in `hg help -e share`
Differential Revision: https://phab.mercurial-scm.org/D9411
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 27 Nov 2020 18:11:04 +0530] rev 46005
helptext: update first hg version when share-safe will be released
I authored the patch which added the helptext before 5.6 release hoping that my
patches will make it. However they didn't before the release and were pushed
after the release only.
Differential Revision: https://phab.mercurial-scm.org/D9410
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 23 Nov 2020 14:15:26 +0530] rev 46004
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 46003
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 46002
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 46001
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 46000
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 45999
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 45998
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 45997
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 45996
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 45995
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 45994
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 45993
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 45992
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 45991
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 45990
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 45989
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 45988
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 45987
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 45986
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 45985
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 45984
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 45983
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