# HG changeset patch # User Alexis S. L. Carvalho # Date 1203019696 7200 # Node ID cb2f7652ad1bd84644537882aafe4984651dc0c3 # Parent 6480af8fd53cc0a8360780824e5725b9196f5c66 revert: don't let repo.status walk the whole working dir Problem diagnosed by pmezard. diff -r 6480af8fd53c -r cb2f7652ad1b mercurial/commands.py --- a/mercurial/commands.py Thu Feb 14 18:08:16 2008 -0200 +++ b/mercurial/commands.py Thu Feb 14 18:08:16 2008 -0200 @@ -2211,9 +2211,12 @@ wlock = repo.wlock() try: # walk dirstate. + files = [] for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, badmatch=mf.has_key): names[abs] = (rel, exact) + if src != 'b': + files.append(abs) # walk target manifest. @@ -2232,7 +2235,7 @@ continue names[abs] = (rel, exact) - changes = repo.status(match=names.has_key)[:4] + changes = repo.status(files=files, match=names.has_key)[:4] modified, added, removed, deleted = map(dict.fromkeys, changes) # if f is a rename, also revert the source