I'm planning to remove/deprecate svn_wc_add4(), the many-headed beast, and provide replacement functions that have more focused tasks.
I reached this point from trying to understand the different kinds of add and copy in order to sort out the "operation depth" field for the NODES table. I drew out the call graph of all WC add and copy calls; it's attached as a PDF and visible at <https://docs.google.com/drawings/edit?id=1Up_5tvnKjShQL2F8GGtoIefiBDp5k4ODf1_ZxrgBJ1U&hl=en>. Plan: * Remove svn_wc_add4(). Keep the deprecated svn_wc_add3() for backward compatibility. Probably re-implement it in terms of the new simpler functions. * For an add without 'copyfrom', a new function: svn_wc_add[4|_tree|something](depth) # any node kind * For a repo->WC copy: svn_wc_add_repos_file4() # existing function svn_wc_add_repos_dir(depth) # new function * For a WC-to-WC copy: svn_wc_copy3() # existing function * Reorganize svn_wc_copy3() internally: If the target should be a simple add (if the source is itself a simple add or from a different repos), call the simple-add function. Copying a repository node from the WC Any thoughts? - Julian