# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1610640252 -19800 # Node ID 8788981c95f86877a26a15494aca6e382f897dfa # Parent 02f3badf9011b67e2fe2f45d38486eed9f706b6c localrepo: disallow share if there is a version mismatch by default Earlier we used to allow shares which don't use share-safe mechanism to access repository which uses share-safe mechanism. This defeats the purpose and is bad behavior. This patch disallows that. Next patch will introduce a config option to allow that and have clearer understanding around various options. Differential Revision: https://phab.mercurial-scm.org/D9784 diff -r 02f3badf9011 -r 8788981c95f8 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Jan 18 19:50:21 2021 +0530 +++ b/mercurial/localrepo.py Thu Jan 14 21:34:12 2021 +0530 @@ -608,13 +608,11 @@ storevfs, requirements, ) - elif ui.configbool( - b'experimental', b'sharesafe-warn-outdated-shares' - ): - ui.warn( + else: + raise error.Abort( _( - b'warning: source repository supports share-safe functionality.' - b' Reshare to upgrade.\n' + b'version mismatch: source uses share-safe' + b' functionality while the current share does not' ) ) diff -r 02f3badf9011 -r 8788981c95f8 tests/test-share-safe.t --- a/tests/test-share-safe.t Mon Jan 18 19:50:21 2021 +0530 +++ b/tests/test-share-safe.t Thu Jan 14 21:34:12 2021 +0530 @@ -392,20 +392,11 @@ o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo -Make sure existing shares still works - - $ hg log -GT "{node}: {desc}\n" -R ../nss-share --config experimental.sharesafe-warn-outdated-shares=false - @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar - | - o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo - +Make sure existing shares dont work with default config $ hg log -GT "{node}: {desc}\n" -R ../nss-share - warning: source repository supports share-safe functionality. Reshare to upgrade. - @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar - | - o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo - + abort: version mismatch: source uses share-safe functionality while the current share does not + [255] Create a safe share from upgrade one @@ -538,11 +529,8 @@ sparserevlog store $ hg log -GT "{node}: {desc}\n" -R ../nss-share - warning: source repository supports share-safe functionality. Reshare to upgrade. - @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar - | - o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo - + abort: version mismatch: source uses share-safe functionality while the current share does not + [255] Check that if lock is taken, upgrade fails but read operation are successful $ touch ../nss-share/.hg/wlock