diff -r ba51a8225a60 -r b5d1eaade333 mercurial/localrepo.py --- a/mercurial/localrepo.py Sat Mar 10 17:45:32 2007 -0800 +++ b/mercurial/localrepo.py Sat Mar 10 23:21:33 2007 -0300 @@ -873,7 +873,13 @@ if node: fdict = dict.fromkeys(files) - for fn in self.manifest.read(self.changelog.read(node)[0]): + # for dirstate.walk, files=['.'] means "walk the whole tree". + # follow that here, too + fdict.pop('.', None) + mdict = self.manifest.read(self.changelog.read(node)[0]) + mfiles = mdict.keys() + mfiles.sort() + for fn in mfiles: for ffn in fdict: # match if the file is the exact name or a directory if ffn == fn or fn.startswith("%s/" % ffn): @@ -881,7 +887,9 @@ break if match(fn): yield 'm', fn - for fn in fdict: + ffiles = fdict.keys() + ffiles.sort() + for fn in ffiles: if badmatch and badmatch(fn): if match(fn): yield 'b', fn