D11141: largefile: rearrange conditionnal in `synclfdirstate`

marmoute (Pierre-Yves David) phabricator at mercurial-scm.org
Mon Jul 19 10:42:42 UTC 2021


marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  We can liquidate the special case early, so do we.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D11141

AFFECTED FILES
  hgext/largefiles/lfutil.py

CHANGE DETAILS

diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py
--- a/hgext/largefiles/lfutil.py
+++ b/hgext/largefiles/lfutil.py
@@ -550,25 +550,23 @@
 
 def synclfdirstate(repo, lfdirstate, lfile, normallookup):
     lfstandin = standin(lfile)
-    if lfstandin in repo.dirstate:
+    if lfstandin not in repo.dirstate:
+        lfdirstate.drop(lfile)
+    else:
         stat = repo.dirstate._map[lfstandin]
         state, mtime = stat.state, stat.mtime
-    else:
-        state, mtime = b'?', -1
-    if state == b'n':
-        if normallookup or mtime < 0 or not repo.wvfs.exists(lfile):
-            # state 'n' doesn't ensure 'clean' in this case
+        if state == b'n':
+            if normallookup or mtime < 0 or not repo.wvfs.exists(lfile):
+                # state 'n' doesn't ensure 'clean' in this case
+                lfdirstate.normallookup(lfile)
+            else:
+                lfdirstate.normal(lfile)
+        elif state == b'm':
             lfdirstate.normallookup(lfile)
-        else:
-            lfdirstate.normal(lfile)
-    elif state == b'm':
-        lfdirstate.normallookup(lfile)
-    elif state == b'r':
-        lfdirstate.remove(lfile)
-    elif state == b'a':
-        lfdirstate.add(lfile)
-    elif state == b'?':
-        lfdirstate.drop(lfile)
+        elif state == b'r':
+            lfdirstate.remove(lfile)
+        elif state == b'a':
+            lfdirstate.add(lfile)
 
 
 def markcommitted(orig, ctx, node):



To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel


More information about the Mercurial-devel mailing list