localrepo: abort creating a shared repo if the source does not have store
authorPulkit Goyal <7895pulkit@gmail.com>
Tue, 21 Jul 2020 18:21:27 +0530
changeset 45301 dc283bc7e033
parent 45300 dc457177dbc1
child 45302 fa18b02df8dd
localrepo: abort creating a shared repo if the source does not have store We cannot create a shared repository without a store IIUC. Let's abort in such cases. Differential Revision: https://phab.mercurial-scm.org/D8772
mercurial/localrepo.py
tests/test-share.t
--- a/mercurial/localrepo.py	Tue Jul 21 13:58:58 2020 +0530
+++ b/mercurial/localrepo.py	Tue Jul 21 18:21:27 2020 +0530
@@ -3334,6 +3334,14 @@
             )
             dropped.add(bookmarks.BOOKMARKS_IN_STORE_REQUIREMENT)
 
+        if b'shared' in requirements or b'relshared' in requirements:
+            raise error.Abort(
+                _(
+                    b"cannot create shared repository as source was created"
+                    b" with 'format.usestore' config disabled"
+                )
+            )
+
     return dropped
 
 
--- a/tests/test-share.t	Tue Jul 21 13:58:58 2020 +0530
+++ b/tests/test-share.t	Tue Jul 21 18:21:27 2020 +0530
@@ -252,3 +252,9 @@
 
   $ killdaemons.py
 
+Test sharing a repository which was created with store requirement disable
+
+  $ hg init nostore --config format.usestore=false
+  $ hg share nostore sharednostore
+  abort: cannot create shared repository as source was created with 'format.usestore' config disabled
+  [255]