# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2020-06-25 07:46:55 # Node ID 78f0bb37f52dac4237ce069457beddae8d5786dd # Parent ac7a3da0dbb6c0ee26a149c765d72aecff13d30b upgrade: support running upgrade if repository has share-safe requirement This helps us in testing changing requirements of source repository and checking that the shared repository works. Differential Revision: https://phab.mercurial-scm.org/D8660 diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py --- a/mercurial/upgrade.py +++ b/mercurial/upgrade.py @@ -108,6 +108,7 @@ def supporteddestrequirements(repo): requirements.SIDEDATA_REQUIREMENT, requirements.COPIESSDC_REQUIREMENT, requirements.NODEMAP_REQUIREMENT, + requirements.SHARESAFE_REQUIREMENT, } for name in compression.compengines: engine = compression.compengines[name] diff --git a/tests/test-share-safe.t b/tests/test-share-safe.t --- a/tests/test-share-safe.t +++ b/tests/test-share-safe.t @@ -167,6 +167,38 @@ Test that if share source config is untr $ hg showconfig hooks --config extensions.untrusted=$TESTTMP/untrusted.py [1] +Update the source repository format and check that shared repo works + + $ cd ../source + $ echo "[format]" >> .hg/hgrc + $ echo "revlog-compression=zstd" >> .hg/hgrc + + $ hg debugupgraderepo --run -q -R ../shared1 + abort: cannot upgrade repository; unsupported source requirement: shared + [255] + + $ hg debugupgraderepo --run -q + upgrade will perform the following actions: + + requirements + preserved: dotencode, exp-sharesafe, fncache, generaldelta, revlogv1, sparserevlog, store + added: revlog-compression-zstd + + $ hg log -r . + changeset: 1:5f6d8a4bf34a + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: added b + +Shared one should work + $ cd ../shared1 + $ hg log -r . + changeset: 2:155349b645be + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: added c + Unsharing works $ hg unshare