add: pass full=False to dirstate walk
Previously cmdutil.add would call wctx.walk(), which under the hood calls
dirstate.walk with full=True. This means it returns all of the clean files
(which we don't need when computing the add set), as well as the unclean files.
This results in 1) a lot more work being done and 2) this code path
circumventing the hgwatchman extension, resulting in worse performance in
hgwatchman environments ('hg add .' went from 9s to 1.8s).
$ hg init a
$ cd a
$ hg init b
$ echo x > b/x
Should print nothing:
$ hg add b
$ hg st
$ echo y > b/y
$ hg st
Should fail:
$ hg st b/x
abort: path 'b/x' is inside nested repo 'b' (glob)
[255]
$ hg add b/x
abort: path 'b/x' is inside nested repo 'b' (glob)
[255]
Should fail:
$ hg add b b/x
abort: path 'b/x' is inside nested repo 'b' (glob)
[255]
$ hg st
Should arguably print nothing:
$ hg st b
$ echo a > a
$ hg ci -Ama a
Should fail:
$ hg mv a b
abort: path 'b/a' is inside nested repo 'b' (glob)
[255]
$ hg st
$ cd ..