hgext/largefiles/lfutil.py
branchstable
changeset 27942 eb1135d5e688
parent 27903 512a814c5595
child 27947 571ba161f6be
--- a/hgext/largefiles/lfutil.py	Mon Jan 25 15:48:35 2016 -0800
+++ b/hgext/largefiles/lfutil.py	Sat Jan 23 20:51:17 2016 -0500
@@ -575,11 +575,15 @@
         fstandin = standin(f)
 
         # For largefiles, only one of the normal and standin should be
-        # committed (except if one of them is a remove).
+        # committed (except if one of them is a remove).  In the case of a
+        # standin removal, drop the normal file if it is unknown to dirstate.
         # Thus, skip plain largefile names but keep the standin.
-        if (f in lfiles or fstandin in standins) and \
-            repo.dirstate[f] != 'r' and repo.dirstate[fstandin] != 'r':
-            continue
+        if f in lfiles or fstandin in standins:
+            if repo.dirstate[fstandin] != 'r':
+                if repo.dirstate[f] != 'r':
+                    continue
+            elif repo.dirstate[f] == '?':
+                continue
 
         actualfiles.append(f)
     match._files = actualfiles