diff -r c6b912f8b5b2 -r 809a870a0e73 mercurial/hg.py --- a/mercurial/hg.py Tue Jul 19 07:00:03 2005 -0800 +++ b/mercurial/hg.py Tue Jul 19 07:15:59 2005 -0800 @@ -434,30 +434,30 @@ subdirs.remove(sd) for fn in fl: fn = util.pconvert(os.path.join(d, fn)) - yield fn + yield 'f', fn else: - yield f[len(self.root) + 1:] + yield 'f', f[len(self.root) + 1:] for k in dc.keys(): - yield k + yield 'm', k # yield only files that match: all in dirstate, others only if # not in .hgignore - for fn in util.unique(traverse()): + for src, fn in util.unique(traverse()): if fn in dc: del dc[fn] elif self.ignore(fn): continue if match(fn): - yield fn + yield src, fn def changes(self, files = None, match = util.always): self.read() dc = self.map.copy() lookup, changed, added, unknown = [], [], [], [] - for fn in self.walk(files, match): + for src, fn in self.walk(files, match): try: s = os.stat(os.path.join(self.root, fn)) except: continue @@ -840,11 +840,11 @@ def walk(self, node = None, files = [], match = util.always): if node: - change = self.changelog.read(node) - fns = filter(match, self.manifest.read(change[0])) + for fn in self.manifest.read(self.changelog.read(node)[0]): + yield 'm', fn else: - fns = self.dirstate.walk(files, match) - for fn in fns: yield fn + for src, fn in self.dirstate.walk(files, match): + yield src, fn def changes(self, node1 = None, node2 = None, files = [], match = util.always):