##// END OF EJS Templates
localrepository.status: only acquire wlock if actually needed....
Bryan O'Sullivan -
r4372:4ddc6d37 default
parent child Browse files
Show More
@@ -919,13 +919,10 b' class localrepository(repo.repository):'
919 # all the revisions in parent->child order.
919 # all the revisions in parent->child order.
920 mf1 = mfmatches(node1)
920 mf1 = mfmatches(node1)
921
921
922 mywlock = False
923
922 # are we comparing the working directory?
924 # are we comparing the working directory?
923 if not node2:
925 if not node2:
924 if not wlock:
925 try:
926 wlock = self.wlock(wait=0)
927 except lock.LockException:
928 wlock = None
929 (lookup, modified, added, removed, deleted, unknown,
926 (lookup, modified, added, removed, deleted, unknown,
930 ignored, clean) = self.dirstate.status(files, match,
927 ignored, clean) = self.dirstate.status(files, match,
931 list_ignored, list_clean)
928 list_ignored, list_clean)
@@ -942,7 +939,13 b' class localrepository(repo.repository):'
942 modified.append(f)
939 modified.append(f)
943 else:
940 else:
944 clean.append(f)
941 clean.append(f)
945 if wlock is not None:
942 if not wlock and not mywlock:
943 mywlock = True
944 try:
945 wlock = self.wlock(wait=0)
946 except lock.LockException:
947 pass
948 if wlock:
946 self.dirstate.update([f], "n")
949 self.dirstate.update([f], "n")
947 else:
950 else:
948 # we are comparing working dir against non-parent
951 # we are comparing working dir against non-parent
@@ -957,6 +960,9 b' class localrepository(repo.repository):'
957 for f in removed:
960 for f in removed:
958 if f in mf2:
961 if f in mf2:
959 del mf2[f]
962 del mf2[f]
963
964 if mywlock and wlock:
965 wlock.release()
960 else:
966 else:
961 # we are comparing two revisions
967 # we are comparing two revisions
962 mf2 = mfmatches(node2)
968 mf2 = mfmatches(node2)
General Comments 0
You need to be logged in to leave comments. Login now