Checkout
Julian Foad
committed
on 01 Oct 15
On the 'move-tracking-2' branch: Record where branches were branched from.

* subversion/include/private/svn_branch.h,
subversion/libsvn_d… Show more
On the 'move-tracking-2' branch: Record where branches were branched from.

* subversion/include/private/svn_branch.h,

 subversion/libsvn_delta/branch.c

 (svn_branch_rev_bid_t,

  svn_branch_rev_bid_create,

  svn_branch_rev_bid_dup): New.

 (svn_branch_state_t,

  svn_branch_state_create,

  svn_branch_add_new_branch,

  svn_branch_subtree_t): Add a 'predecessor' field.

 (svn_branch_get_subtree): Fill in the 'predecessor' field.

 (svn_branch_instantiate_subtree): Pass on the predecessor when creating

   any nested branches.

 (parse_branch_line,

  svn_branch_state_parse,

  svn_branch_state_serialize): Read and write the branch predecessor info.

 (svn_branch_revision_root_serialize): Finalize the predecessor 'rev' field

   by converting '-1' to the committed revision number.

* subversion/include/private/svn_editor3e.h,

 subversion/libsvn_delta/editor3e.c

 (svn_editor3_open_branch,

  svn_editor3_open_branch_t): Add a 'predecessor' field.

 (wrap_open_branch,

  change_detection_open_branch): Adjust accordingly.

* subversion/libsvn_delta/compat3e.c

 (editor3_open_branch,

  editor3_branch): Pass on the predecessor when creating a new branch.

* subversion/libsvn_ra/ra_loader.c

 (svn_branch_get_mutable_state): Update all the 'predecessor' info to point

   to the base revision instead of to that revision's predecessor.

* subversion/svnmover/svnmover.c

 (svn_branch_replay): Pass on the predecessor when creating a new branch.

 (mk_branch): Pass null for the predecessor of the new branch.

* subversion/tests/cmdline/svntest/wc.py

 (re_parse_eid_branch,

  State.from_eids): Adjust the regex for matching the branch metadata.

Show less