equal
deleted
inserted
replaced
40 return ret |
40 return ret |
41 |
41 |
42 def diff(self, m2): |
42 def diff(self, m2): |
43 '''Finds changes between the current manifest and m2. The result is |
43 '''Finds changes between the current manifest and m2. The result is |
44 returned as a dict with filename as key and values of the form |
44 returned as a dict with filename as key and values of the form |
45 ((n1,n2),(fl1,fl2)), where n1/n2 is the nodeid in the current/other |
45 ((n1,fl1),(n2,fl2)), where n1/n2 is the nodeid in the current/other |
46 manifest and fl1/fl2 is the flag in the current/other manifest. Where |
46 manifest and fl1/fl2 is the flag in the current/other manifest. Where |
47 the file does not exist, the nodeid will be None and the flags will be |
47 the file does not exist, the nodeid will be None and the flags will be |
48 the empty string.''' |
48 the empty string.''' |
49 diff = {} |
49 diff = {} |
50 |
50 |
53 n2 = m2.get(fn, None) |
53 n2 = m2.get(fn, None) |
54 fl2 = m2._flags.get(fn, '') |
54 fl2 = m2._flags.get(fn, '') |
55 if n2 is None: |
55 if n2 is None: |
56 fl2 = '' |
56 fl2 = '' |
57 if n1 != n2 or fl1 != fl2: |
57 if n1 != n2 or fl1 != fl2: |
58 diff[fn] = ((n1, n2), (fl1, fl2)) |
58 diff[fn] = ((n1, fl1), (n2, fl2)) |
59 |
59 |
60 for fn, n2 in m2.iteritems(): |
60 for fn, n2 in m2.iteritems(): |
61 if fn not in self: |
61 if fn not in self: |
62 fl2 = m2._flags.get(fn, '') |
62 fl2 = m2._flags.get(fn, '') |
63 diff[fn] = ((None, n2), ('', fl2)) |
63 diff[fn] = ((None, ''), (n2, fl2)) |
64 |
64 |
65 return diff |
65 return diff |
66 |
66 |
67 def text(self): |
67 def text(self): |
68 """Get the full data of this manifest as a bytestring.""" |
68 """Get the full data of this manifest as a bytestring.""" |