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

Reply via email to