Fix performance regression in addremove command.
When I rewrote addremove, I lazily put a call to repo.changes in,
which was unnecessary and slow. This is a new rewrite, preserving the
file name behaviour, but replacing the call to repo.changes with a walk,
which is much cheaper, and avoids calls to os.stat on all but files that
have probably been deleted.
+ mkdir t
+ cd t
+ hg init
+ echo a
+ hg add a
+ hg commit -m test -d '0 0'
+ hg history
changeset: 0:acb14030fe0a
tag: tip
user: test
date: Thu Jan 1 00:00:00 1970
summary: test
+ hg manifest
b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a
+ hg cat a
a
+ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions