Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/dirstate.py @ 1476:17e8c70fb670
fix dirstate.change: it should walk ignored files
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Fri, 28 Oct 2005 10:57:40 -0700 |
parents | f56f38a1a85f |
children | 2bc6cd62a29c |
comparison
equal
deleted
inserted
replaced
1475:d791c335fb7b | 1476:17e8c70fb670 |
---|---|
9 | 9 |
10 import struct, os | 10 import struct, os |
11 from node import * | 11 from node import * |
12 from i18n import gettext as _ | 12 from i18n import gettext as _ |
13 from demandload import * | 13 from demandload import * |
14 demandload(globals(), "time bisect stat util re") | 14 demandload(globals(), "time bisect stat util re errno") |
15 | 15 |
16 class dirstate: | 16 class dirstate: |
17 def __init__(self, opener, ui, root): | 17 def __init__(self, opener, ui, root): |
18 self.opener = opener | 18 self.opener = opener |
19 self.root = root | 19 self.root = root |
370 try: | 370 try: |
371 type, mode, size, time = self[fn] | 371 type, mode, size, time = self[fn] |
372 except KeyError: | 372 except KeyError: |
373 unknown.append(fn) | 373 unknown.append(fn) |
374 continue | 374 continue |
375 # XXX: what to do with file no longer present in the fs | 375 if src == 'm': |
376 # who are not removed in the dirstate ? | 376 try: |
377 if src == 'm' and not type == 'r': | 377 st = os.stat(fn) |
378 deleted.append(fn) | 378 except OSError, inst: |
379 continue | 379 # XXX: what to do with file no longer present in the fs |
380 # who are not removed in the dirstate ? | |
381 if inst.errno != errno.ENOENT: | |
382 raise | |
383 deleted.append(fn) | |
384 continue | |
380 # check the common case first | 385 # check the common case first |
381 if type == 'n': | 386 if type == 'n': |
382 if not st: | 387 if not st: |
383 st = os.stat(fn) | 388 st = os.stat(fn) |
384 if size != st.st_size or (mode ^ st.st_mode) & 0100: | 389 if size != st.st_size or (mode ^ st.st_mode) & 0100: |