Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/localrepo.py @ 4195:b5d1eaade333
Merge a bunch of matcher and locate fixes.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 10 Mar 2007 23:21:33 -0300 |
parents | ba51a8225a60 e8ee8fdeddb1 |
children | dbc3846c09a1 |
comparison
equal
deleted
inserted
replaced
4177:ba51a8225a60 | 4195:b5d1eaade333 |
---|---|
871 'b' file was not found and matched badmatch | 871 'b' file was not found and matched badmatch |
872 ''' | 872 ''' |
873 | 873 |
874 if node: | 874 if node: |
875 fdict = dict.fromkeys(files) | 875 fdict = dict.fromkeys(files) |
876 for fn in self.manifest.read(self.changelog.read(node)[0]): | 876 # for dirstate.walk, files=['.'] means "walk the whole tree". |
877 # follow that here, too | |
878 fdict.pop('.', None) | |
879 mdict = self.manifest.read(self.changelog.read(node)[0]) | |
880 mfiles = mdict.keys() | |
881 mfiles.sort() | |
882 for fn in mfiles: | |
877 for ffn in fdict: | 883 for ffn in fdict: |
878 # match if the file is the exact name or a directory | 884 # match if the file is the exact name or a directory |
879 if ffn == fn or fn.startswith("%s/" % ffn): | 885 if ffn == fn or fn.startswith("%s/" % ffn): |
880 del fdict[ffn] | 886 del fdict[ffn] |
881 break | 887 break |
882 if match(fn): | 888 if match(fn): |
883 yield 'm', fn | 889 yield 'm', fn |
884 for fn in fdict: | 890 ffiles = fdict.keys() |
891 ffiles.sort() | |
892 for fn in ffiles: | |
885 if badmatch and badmatch(fn): | 893 if badmatch and badmatch(fn): |
886 if match(fn): | 894 if match(fn): |
887 yield 'b', fn | 895 yield 'b', fn |
888 else: | 896 else: |
889 self.ui.warn(_('%s: No such file in rev %s\n') % ( | 897 self.ui.warn(_('%s: No such file in rev %s\n') % ( |