localrepo: disallow share if there is a version mismatch by default
authorPulkit Goyal <7895pulkit@gmail.com>
Thu, 14 Jan 2021 21:34:12 +0530
changeset 46331 8788981c95f8
parent 46330 02f3badf9011
child 46332 cc3452d2dfa4
child 46335 25be21ec6c65
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
mercurial/localrepo.py
tests/test-share-safe.t
--- 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'
                     )
                 )
 
--- 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