Add a new --remove-ignored option to 'svn cleanup', replacing --no-ignore.
Previously, --no-ignore was only valid with --remove-unversioned. The new --remove-ignored option allows removing ignored items separately from non-ignored unversioned items.
Suggested by: gstein
* subversion/include/svn_client.h (svn_client_cleanup2): Rename 'no_ignore' parameter to 'remove_ignored_children'.
* subversion/libsvn_client/cleanup.c (remove_unversioned_items_baton): Add 'remove_unversioned_items' member. (remove_unversioned_items): Only remove unversioned items if the 'remove_unversioned_items' is set in the baton. (svn_client_cleanup2): Account for renamed parameter and new baton member. Run the delete-items status walk if either unversioned or ignored items are to be removed, not just for unversioned items.
Allow 'svn cleanup' to remove unversioned items from the working copy. This should address the feature request from issue #3549.
Add two new options to 'svn cleanup', --remove-unversioned and --no-ignore. The former causes unversioned files and directories to be removed after successful cleanup. The latter causes ignored items to be removed as well.
One remaining question is what to do with externals. Right now, 'svn cleanup' never recurses into externals. Should it recurse into externals if the --remove-unversioned option is given? Should we change it to always recurse into externals by default? I'm not quite sure.
* subversion/libsvn_client/cleanup.c (remove_unversioned_items): New helper function. (svn_client_cleanup2): Implement as an extension of svn_client_cleanup(), which can optionally remove unversioned items after all other cleanup actions, via a status walk.
* subversion/libsvn_client/deprecated.c (svn_client_cleanup): Implement as a wrapper around svn_client_cleanup2().
* subversion/svn/cl.h (svn_cl__opt_state_t): Add new 'remove_unversioned' option.
* subversion/svn/cleanup-cmd.c (svn_cl__cleanup): Run svn_client_cleanup2() to support removal of unversioned items. Reject --no-ignore option without --remove-unversioned.
* subversion/svn/svn.c (svn_cl__longopt_t): Add opt_remove_unversioned. (svn_cl__options): Add --remove-unversioned option. (svn_cl__cmd_table): Extend help text of 'svn cleanup'. (sub_main): Handle --remove-unversioned option.
* subversion/tests/cmdline/wc_tests.py (cleanup_unversioned_items, test_list): New test.