equal
deleted
inserted
replaced
879 |
879 |
880 If node1 is None, use the first dirstate parent instead. |
880 If node1 is None, use the first dirstate parent instead. |
881 If node2 is None, compare node1 with working directory. |
881 If node2 is None, compare node1 with working directory. |
882 """ |
882 """ |
883 |
883 |
884 def fcmp(fn, mf): |
884 def fcmp(fn, getnode): |
885 t1 = self.wread(fn) |
885 t1 = self.wread(fn) |
886 return self.file(fn).cmp(mf.get(fn, nullid), t1) |
886 return self.file(fn).cmp(getnode(fn), t1) |
887 |
887 |
888 def mfmatches(node): |
888 def mfmatches(node): |
889 change = self.changelog.read(node) |
889 change = self.changelog.read(node) |
890 mf = self.manifest.read(change[0]).copy() |
890 mf = self.manifest.read(change[0]).copy() |
891 for fn in mf.keys(): |
891 for fn in mf.keys(): |
920 # are we comparing working dir against its parent? |
920 # are we comparing working dir against its parent? |
921 if compareworking: |
921 if compareworking: |
922 if lookup: |
922 if lookup: |
923 # do a full compare of any files that might have changed |
923 # do a full compare of any files that might have changed |
924 mf2 = mfmatches(self.dirstate.parents()[0]) |
924 mf2 = mfmatches(self.dirstate.parents()[0]) |
|
925 getnode = lambda fn: mf2.get(fn, nullid) |
925 for f in lookup: |
926 for f in lookup: |
926 if fcmp(f, mf2): |
927 if fcmp(f, getnode): |
927 modified.append(f) |
928 modified.append(f) |
928 else: |
929 else: |
929 clean.append(f) |
930 clean.append(f) |
930 if wlock is not None: |
931 if wlock is not None: |
931 self.dirstate.update([f], "n") |
932 self.dirstate.update([f], "n") |
952 |
953 |
953 # make sure to sort the files so we talk to the disk in a |
954 # make sure to sort the files so we talk to the disk in a |
954 # reasonable order |
955 # reasonable order |
955 mf2keys = mf2.keys() |
956 mf2keys = mf2.keys() |
956 mf2keys.sort() |
957 mf2keys.sort() |
|
958 getnode = lambda fn: mf1.get(fn, nullid) |
957 for fn in mf2keys: |
959 for fn in mf2keys: |
958 if mf1.has_key(fn): |
960 if mf1.has_key(fn): |
959 if mf1.flags(fn) != mf2.flags(fn) or \ |
961 if mf1.flags(fn) != mf2.flags(fn) or \ |
960 (mf1[fn] != mf2[fn] and (mf2[fn] != "" or fcmp(fn, mf1))): |
962 (mf1[fn] != mf2[fn] and (mf2[fn] != "" or |
|
963 fcmp(fn, getnode))): |
961 modified.append(fn) |
964 modified.append(fn) |
962 elif list_clean: |
965 elif list_clean: |
963 clean.append(fn) |
966 clean.append(fn) |
964 del mf1[fn] |
967 del mf1[fn] |
965 else: |
968 else: |