Checkout
Julian Foad
committed
on 20 Dec 12
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… Show more
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.

Show less