narrow: read pending file when applicable
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 02 Mar 2023 04:16:47 +0100
changeset 50251 2fbc109fd58a
parent 50250 57133107ab4d
child 50252 a6b8b1ab9116
narrow: read pending file when applicable Now that this is part of the transaction, this is necessary to make sure we read the right data in hooks (if any).
mercurial/narrowspec.py
--- a/mercurial/narrowspec.py	Tue Feb 28 11:44:52 2023 -0500
+++ b/mercurial/narrowspec.py	Thu Mar 02 04:16:47 2023 +0100
@@ -16,6 +16,7 @@
     mergestate as mergestatemod,
     scmutil,
     sparse,
+    txnutil,
     util,
 )
 
@@ -169,7 +170,13 @@
 def load(repo):
     # Treat "narrowspec does not exist" the same as "narrowspec file exists
     # and is empty".
-    spec = repo.svfs.tryread(FILENAME)
+    spec = None
+    if txnutil.mayhavepending(repo.root):
+        pending_path = b"%s.pending" % FILENAME
+        if repo.svfs.exists(pending_path):
+            spec = repo.svfs.tryread(FILENAME)
+    if spec is None:
+        spec = repo.svfs.tryread(FILENAME)
     return parseconfig(repo.ui, spec)