remove: rewrite to be ~400x faster, bit more friendly
old remove code called localrepo.changes for each file.
was very expensive:
$ hg --time rm arch>/dev/null
Time: real 1066.120 secs (user 1014.450+0.000 sys 18.090+0.000)
new code, same files:
$ hg --time rm arch>/dev/null
Time: real 2.770 secs (user 2.190+0.000 sys 0.580+0.000)
also mention "-f" if not removing files. also allow "-f" to forget
added files.
make test a bit better.
#!/bin/sh
hg init a
cd a
echo a > foo
hg rm foo
hg add foo
hg commit -m 1 -d "1000000 0"
hg remove
rm foo
hg remove foo
hg revert
rm foo
hg remove --after
hg commit -m 2 -d "1000000 0"
hg export 0
hg export 1
hg log -p -r 0
hg log -p -r 1
echo a > a
hg add a
hg rm a
hg rm -f a
echo b > b
hg ci -A -m 3 -d "1000001 0"
echo c >> b
hg rm b
hg rm -f b
cd ..
hg clone a b