Fix Issue #2491 Add --dry-run flag to "svn update" client command HEADERS AND DEPRECATIONS * subversion/include/svn_client.h (svn_client_update4) : Modify signature and document it. * subversion/libsvn_client/deprecated.c (svn_client_update3) : Fix call of svn_client_update4 to pass FALSE to dry_run. * subversion/include/svn_wc.h (svn_wc_crawl_revisions5, svn_wc_get_update_editor4) : Modify signature and document it. * subversion/libsvn_wc/deprecated.c (svn_wc_crawl_revisions4) : Call svn_wc_crawl_revisions5 with dry_run as FALSE. (svn_wc_get_update_editor3) : Call svn_wc_get_update_editor4 with dry_run as FALSE. * subversion/libsvn_client/client.h (svn_client__update_internal) : Modify signature and document it. IMPLEMENTATION * subversion/svn/main.c (svn_cl__cmd_table): Let update accept opt_dry_run. (main) : Don't allow opt_dry_run with --set-depth and --parents. * subversion/libsvn_client/update.c (update_internal) : Accept dry_run. Fix call of svn_wc_get_update_editor4, svn_wc_crawl_revisions5. Avoid handling externals. (svn_client__update_internal) : Accept dry_run. Fix calls of update_internal. (svn_client_update4) : Accept dry_run. Fix call of svn_client__update_internal. * subversion/svn/update-cmd.c (svn_cl__update): Fix call of svn_client_update4. * subversion/libsvn_wc/update_editor.c (edit_baton) : Added a svn_boolean_t dry_run. Added a apr_hash_t dry_run_deletions. (remember_dry_run_deletion) : New function to keep track of dry run deletions (complete_directory, open_root, do_entry_deletion, add_directory, open_directory, close_directory, absent_file_or_dir, add_file, open_file, apply_textdelta, merge_file, close_file, tweak_entries, close_edit) : Implemented dry-run logic. (make_editor) : Accept dry_run and initialize dry_run and dry_run_deletions. (svn_wc_get_update_editor4, svn_wc_get_switch_editor4) : Fix call of make_editor. * subversion/libsvn_wc/adm_crawler.c (restore_node) : Accept dry_run and if TRUE, do only notification without restoring the node. (report_revisions_and_depths) : Accept dry_run and fix call of restore_node and recursive call of report_revisions_and_depths. (svn_wc_crawl_revisions5) : Accept dry_run and fix call of restore_node and recursive call of svn_wc_crawl_revisions5. * subversion/libsvn_client/switch.c (switch_internal) : Fix call of svn_wc_crawl_revisions5. * subversion/libsvn_client/status.c (svn_client_status5) : Fix call of svn_wc_crawl_revisions5. * subversion/libsvn_client/diff.c (diff_repos_wc) : Fix call of svn_wc_crawl_revisions5. * subversion/libsvn_client/checkout.c (svn_client__checkout_internal) : Fix call of svn_client__update_internal. * subversion/libsvn_client/externals.c (switch_dir_external) : Fix call of svn_client__update_internal. TEST SUITE * subversion/tests/cmdline/svntest/actions.py (_post_update_checks) : New function to do the checks after an update. (run_and_verify_update): Accept a dry_run parameter. If TRUE, check that the dry run hasn't affected the wc. * subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/resolved_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/depth_tests.py (Tests) : Fix callers of run_and_verify_update. Patch by: Arwin Arni Guided by kameshj