equal
deleted
inserted
replaced
210 |
210 |
211 def update(self, files, state): |
211 def update(self, files, state): |
212 ''' current states: |
212 ''' current states: |
213 n normal |
213 n normal |
214 m needs merging |
214 m needs merging |
215 i invalid |
|
216 r marked for removal |
215 r marked for removal |
217 a marked for addition''' |
216 a marked for addition''' |
218 |
217 |
219 if not files: return |
218 if not files: return |
220 self.read() |
219 self.read() |
221 self.dirty = 1 |
220 self.dirty = 1 |
222 for f in files: |
221 for f in files: |
223 if state == "r": |
222 if state == "r": |
224 self.map[f] = ('r', 0, 0, 0) |
223 self.map[f] = ('r', 0, 0, 0) |
225 else: |
224 else: |
226 try: |
225 s = os.stat(os.path.join(self.root, f)) |
227 s = os.stat(os.path.join(self.root, f)) |
226 self.map[f] = (state, s.st_mode, s.st_size, s.st_mtime) |
228 self.map[f] = (state, s.st_mode, s.st_size, s.st_mtime) |
|
229 except OSError: |
|
230 if state != "i": raise |
|
231 self.map[f] = ('r', 0, 0, 0) |
|
232 |
227 |
233 def forget(self, files): |
228 def forget(self, files): |
234 if not files: return |
229 if not files: return |
235 self.read() |
230 self.read() |
236 self.dirty = 1 |
231 self.dirty = 1 |
534 if fn in dc: |
529 if fn in dc: |
535 c = dc[fn] |
530 c = dc[fn] |
536 del dc[fn] |
531 del dc[fn] |
537 if not c: |
532 if not c: |
538 if fcmp(fn): |
533 if fcmp(fn): |
539 changed.append(fn) |
|
540 elif c[0] == 'i': |
|
541 if fn not in mf: |
|
542 added.append(fn) |
|
543 elif fcmp(fn): |
|
544 changed.append(fn) |
534 changed.append(fn) |
545 elif c[0] == 'm': |
535 elif c[0] == 'm': |
546 changed.append(fn) |
536 changed.append(fn) |
547 elif c[0] == 'a': |
537 elif c[0] == 'a': |
548 added.append(fn) |
538 added.append(fn) |