Teach some WC and client 'add' functions to take the properties as a parameter so that the whole addition including any properties can be do…
Teach some WC and client 'add' functions to take the properties as aparameter so that the whole addition including any properties can be doneall at once. This makes 'svn add' into a single DB operation per node andmakes the APIs ready for similar usage by code such as merge and patch.* subversion/libsvn_client/add.c (add_file): Simplify greatly by passing the props to svn_wc_add_from_disk() instead of adding them one by one afterwards and trying to revert the add if that fails. Delegate sending the notification too. (add_dir_recursive, add): Track the API changes.* subversion/libsvn_client/patch.c (create_missing_parents, install_patched_target, install_patched_prop_targets): Track the API changes.* subversion/include/svn_wc.h (svn_wc_add_from_disk2): New revision of svn_wc_add_from_disk(), taking a 'props' parameter. (svn_wc_add_from_disk): Deprecate.* subversion/libsvn_wc/adm_ops.c (add_from_disk): Take a 'props' parameter, pass them on, and install and run a work queue item if necessary to set the on-disk executable and read-only bits. (svn_wc_add4): Track the API changes. (svn_wc_add_from_disk2): Rename from 'svn_wc_add_from_disk'. Take a new 'props' parameter, check and canonicalize the props, and pass them on. Adjust the notification to include the value of any mime-type property, as that is what libsvn_client used to do.* subversion/libsvn_wc/deprecated.c (svn_wc_add_from_disk): New function, wrapping svn_wc_add_from_disk2().* subversion/libsvn_wc/props.h (svn_wc__canonicalize_props): New function.* subversion/libsvn_wc/props.c (ensure_prop_is_regular_kind, svn_wc__canonicalize_props): New functions.* subversion/libsvn_wc/wc_db.h, subversion/libsvn_wc/wc_db.c (svn_wc__db_op_add_directory, svn_wc__db_op_add_file, svn_wc__db_op_add_symlink): Take a 'props' parameter and pass it on.* subversion/tests/libsvn_wc/conflict-data-test.c (test_read_write_tree_conflicts): Track the API changes.* subversion/tests/libsvn_wc/utils.c (sbox_wc_add): Track the API changes.