On the 'move-tracking-2' branch: Refactoring: give the 'branch txn' and 'branch state' objects some virtual methods.
These methods are intended to take over from the separate 'editor API'. At this point, however, this is an additional layer below the editor API.
Only the more significant identifiers and changes are mentioned below.
* subversion/include/private/svn_branch.h, subversion/libsvn_delta/branch.c (svn_branch_txn_priv_t, svn_branch_state_priv_t): New. (svn_branch_txn_t, svn_branch_state_t): Insert an opaque pointer to a private structure that contains the function vtable and any private data. (branch_txn_*, branch_state_*): New method implementations, some from code that was here already and some code moved from compat3e.c. (svn_branch_txn_create, svn_branch_state_create): Fill in the vtable and private data. (svn_branch_txn_open_branch, svn_branch_txn_branch, svn_branch_txn_sequence_point, svn_branch_state_copy_tree): New methods, based on editor3 methods, with implementations moved here from compat3e.c. (svn_branch_txn_new_eid, svn_branch_state_delete_one, svn_branch_state_alter_one, svn_branch_state_purge): Methods renamed and/or changed to the regular form (output results via a pointer parameter, take a scratch pool, return an error).
* subversion/libsvn_delta/compat3e.c (editor3_new_eid, editor3_open_branch, editor3_branch, editor3_alter, editor3_copy_one, editor3_copy_tree, editor3_delete, editor3_sequence_point): Move the implementations of these methods to 'branch.c', and call the branch object methods instead.
On the 'move-tracking-2' branch: Minor refactoring.
* subversion/include/private/svn_branch.h, subversion/libsvn_delta/branch.c (svn_branch_txn_add_new_branch): Rename from 'svn_branch_add_new_branch'. Move 'txn' parameter to the first parameter. (svn_branch_txn_delete_branch): Take a branch-id instead of a branch pointer. Allow returning an error. Delete an old commented-out suggestion for an element structure.
* subversion/libsvn_delta/branch_nested.c (svn_branch_instantiate_elements_r): Track the changes.
* subversion/libsvn_delta/compat3e.c (editor3_open_branch, editor3_branch, editor3_sequence_point): Track the changes.