[PATCH 8 of 8] localrepo: call _dirstatestatus instead of duplicating logic

Sean Farley sean.michael.farley at gmail.com
Tue May 6 18:33:25 CDT 2014


# HG changeset patch
# User Sean Farley <sean.michael.farley at gmail.com>
# Date 1394580736 18000
#      Tue Mar 11 18:32:16 2014 -0500
# Node ID 9ca39f52dd88e1afaa1f89b1f84d6bf7fd15fcc3
# Parent  a2478cd201b77a44d2f9071d99ba3edc9b269359
localrepo: call _dirstatestatus instead of duplicating logic

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1543,33 +1543,21 @@ class localrepository(object):
                 if f not in ctx1 and f not in ctx1.dirs():
                     self.ui.warn('%s: %s\n' % (self.dirstate.pathto(f), msg))
             match.bad = bad
 
         if working: # we need to scan the working dir
-            subrepos = []
-            if '.hgsub' in self.dirstate:
-                subrepos = sorted(ctx2.substate)
-            s = self.dirstate.status(match, subrepos, listignored,
-                                     listclean, listunknown)
-            cmp, modified, added, removed, deleted, unknown, ignored, clean = s
-
-            # check for any possibly clean files
-            if parentworking and cmp:
-                modified2, fixup = ctx2._checklookup(cmp)
-                modified += modified2
-
-                # update dirstate for files that are actually clean
-                if fixup and listclean:
-                    clean += fixup
+            r = ctx2._dirstatestatus(match=match, ignored=listignored,
+                                     clean=listclean, unknown=listunknown)
+            modified, added, removed, deleted, unknown, ignored, clean = r
 
         if not parentworking:
             mf1 = mfmatches(ctx1)
             if working:
                 # we are comparing working dir against non-parent
                 # generate a pseudo-manifest for the working dir
                 mf2 = mfmatches(self['.'])
-                for f in cmp + modified + added:
+                for f in modified + added:
                     mf2[f] = None
                     mf2.set(f, ctx2.flags(f))
                 for f in removed:
                     if f in mf2:
                         del mf2[f]


More information about the Mercurial-devel mailing list