localrepo: remove _readrequires function in favor of scmutil.readrequires
authorArseniy Alekseyev <aalekseyev@janestreet.com>
Thu, 15 Aug 2024 14:56:50 +0100
changeset 51803 45c467d8422c
parent 51802 eb952b2d224c
child 51804 e69e3d585f07
localrepo: remove _readrequires function in favor of scmutil.readrequires
mercurial/localrepo.py
mercurial/upgrade.py
--- a/mercurial/localrepo.py	Thu Aug 15 14:53:17 2024 +0100
+++ b/mercurial/localrepo.py	Thu Aug 15 14:56:50 2024 +0100
@@ -523,20 +523,6 @@
     return sharedvfs
 
 
-def _readrequires(vfs, allowmissing):
-    """reads the require file present at root of this vfs
-    and return a set of requirements
-
-    If allowmissing is True, we suppress FileNotFoundError if raised"""
-    # requires file contains a newline-delimited list of
-    # features/capabilities the opener (us) must have in order to use
-    # the repository. This file was introduced in Mercurial 0.9.2,
-    # which means very old repositories may not have one. We assume
-    # a missing file translates to no requirements.
-    read = vfs.tryread if allowmissing else vfs.read
-    return set(read(b'requires').splitlines())
-
-
 def makelocalrepository(baseui, path: bytes, intents=None):
     """Create a local repository object.
 
@@ -598,7 +584,7 @@
 
         raise error.RepoError(_(b'repository %s not found') % path)
 
-    requirements = _readrequires(hgvfs, True)
+    requirements = scmutil.readrequires(hgvfs, True)
     shared = (
         requirementsmod.SHARED_REQUIREMENT in requirements
         or requirementsmod.RELATIVE_SHARED_REQUIREMENT in requirements
@@ -626,7 +612,7 @@
         if (
             shared
             and requirementsmod.SHARESAFE_REQUIREMENT
-            not in _readrequires(sharedvfs, True)
+            not in scmutil.readrequires(sharedvfs, True)
         ):
             mismatch_warn = ui.configbool(
                 b'share', b'safe-mismatch.source-not-safe.warn'
@@ -670,9 +656,9 @@
                     hint=hint,
                 )
         else:
-            requirements |= _readrequires(storevfs, False)
+            requirements |= scmutil.readrequires(storevfs, False)
     elif shared:
-        sourcerequires = _readrequires(sharedvfs, False)
+        sourcerequires = scmutil.readrequires(sharedvfs, False)
         if requirementsmod.SHARESAFE_REQUIREMENT in sourcerequires:
             mismatch_config = ui.config(b'share', b'safe-mismatch.source-safe')
             mismatch_warn = ui.configbool(
--- a/mercurial/upgrade.py	Thu Aug 15 14:53:17 2024 +0100
+++ b/mercurial/upgrade.py	Thu Aug 15 14:56:50 2024 +0100
@@ -308,7 +308,7 @@
 ):
     """Upgrades a share to use share-safe mechanism"""
     wlock = None
-    store_requirements = localrepo._readrequires(storevfs, False)
+    store_requirements = scmutil.readrequires(storevfs, False)
     original_crequirements = current_requirements.copy()
     # after upgrade, store requires will be shared, so lets find
     # the requirements which are not present in store and
@@ -325,7 +325,7 @@
         wlock = lockmod.trylock(ui, hgvfs, b'wlock', 0, 0)
         # some process might change the requirement in between, re-read
         # and update current_requirements
-        locked_requirements = localrepo._readrequires(hgvfs, True)
+        locked_requirements = scmutil.readrequires(hgvfs, True)
         if locked_requirements != original_crequirements:
             removed = current_requirements - locked_requirements
             # update current_requirements in place because it's passed
@@ -371,7 +371,7 @@
 ):
     """Downgrades a share which use share-safe to not use it"""
     wlock = None
-    source_requirements = localrepo._readrequires(sharedvfs, True)
+    source_requirements = scmutil.readrequires(sharedvfs, True)
     original_crequirements = current_requirements.copy()
     # we cannot be 100% sure on which requirements were present in store when
     # the source supported share-safe. However, we do know that working
@@ -386,7 +386,7 @@
         wlock = lockmod.trylock(ui, hgvfs, b'wlock', 0, 0)
         # some process might change the requirement in between, re-read
         # and update current_requirements
-        locked_requirements = localrepo._readrequires(hgvfs, True)
+        locked_requirements = scmutil.readrequires(hgvfs, True)
         if locked_requirements != original_crequirements:
             removed = current_requirements - locked_requirements
             # update current_requirements in place because it's passed