##// END OF EJS Templates
simplify dirstate fixups in repo.status()
Matt Mackall -
r4912:312c845e default
parent child Browse files
Show More
@@ -875,8 +875,6 b' class localrepository(repo.repository):'
875 875 # all the revisions in parent->child order.
876 876 mf1 = mfmatches(node1)
877 877
878 mywlock = False
879
880 878 # are we comparing the working directory?
881 879 if not node2:
882 880 (lookup, modified, added, removed, deleted, unknown,
@@ -886,22 +884,31 b' class localrepository(repo.repository):'
886 884 # are we comparing working dir against its parent?
887 885 if compareworking:
888 886 if lookup:
887 fixup = []
889 888 # do a full compare of any files that might have changed
890 889 ctx = self.changectx()
891 890 for f in lookup:
892 891 if f not in ctx or ctx[f].cmp(self.wread(f)):
893 892 modified.append(f)
894 893 else:
894 fixup.append(f)
895 895 if list_clean:
896 896 clean.append(f)
897 if not wlock and not mywlock:
898 mywlock = True
899 try:
900 wlock = self.wlock(wait=0)
901 except lock.LockException:
902 pass
903 if wlock:
897
898 # update dirstate for files that are actually clean
899 if fixup:
900 cleanup = False
901 if not wlock:
902 try:
903 wlock = self.wlock(wait=0)
904 cleanup = True
905 except lock.LockException:
906 pass
907 if wlock:
908 for f in fixup:
904 909 self.dirstate.normal(f)
910 if cleanup:
911 wlock.release()
905 912 else:
906 913 # we are comparing working dir against non-parent
907 914 # generate a pseudo-manifest for the working dir
@@ -916,8 +923,6 b' class localrepository(repo.repository):'
916 923 if f in mf2:
917 924 del mf2[f]
918 925
919 if mywlock and wlock:
920 wlock.release()
921 926 else:
922 927 # we are comparing two revisions
923 928 mf2 = mfmatches(node2)
General Comments 0
You need to be logged in to leave comments. Login now