Log Message: |
Teach some WC and client 'add' functions to take the properties as a
parameter so that the whole addition including any properties can be done
all at once. This makes 'svn add' into a single DB operation per node and
makes 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.
|