Move commands.forget over to using new walk code.
With no names, it now recursively forgets everything, as is the default
behaviour of other commands. And prints the names of all files it
hasn't specifically been told to forget.
+ umask 027
+ mkdir test1
+ cd test1
+ hg init
+ touch a b
+ hg add a b
+ hg ci -m 'added a b' -d '0 0'
+ cd ..
+ mkdir test2
+ cd test2
+ hg init
+ hg pull ../test1
pulling from ../test1
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
(run 'hg update' to get a working copy)
+ hg co
+ chmod +x a
+ hg ci -m 'chmod +x a' -d '0 0'
+ cd ../test1
+ echo 123
+ hg ci -m 'a updated' -d '0 0'
+ hg pull ../test2
pulling from ../test2
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
+ hg heads
changeset: 2:3ef543305655
tag: tip
parent: 0:22a449e20da5
user: test
date: Thu Jan 1 00:00:00 1970
summary: chmod +x a
changeset: 1:c6ecefc45368
user: test
date: Thu Jan 1 00:00:00 1970
summary: a updated
+ hg history
changeset: 2:3ef543305655
tag: tip
parent: 0:22a449e20da5
user: test
date: Thu Jan 1 00:00:00 1970
summary: chmod +x a
changeset: 1:c6ecefc45368
user: test
date: Thu Jan 1 00:00:00 1970
summary: a updated
changeset: 0:22a449e20da5
user: test
date: Thu Jan 1 00:00:00 1970
summary: added a b
+ hg -v co -m
resolving manifests
merging a
resolving a
+ ls -l ../test1/a ../test2/a
+ cut -b 0-10
-rwxr-x---
-rwxr-x---