Checkout
Julian Foad
committed
on 19 Aug 15
On the 'move-tracking-2' branch: More support for top-level (that is,
non-nested) branches.

This makes it possible to create a new top-leve… Show more
On the 'move-tracking-2' branch: More support for top-level (that is,

non-nested) branches.

This makes it possible to create a new top-level branch by branching any

existing branch, by means of:

 svnmover -B <existing-branch-id> tbranch <path-to-existing-branch>

(The syntax is redundant, as <existing-branch-id> implies

<path-to-existing-branch>.)

TODO:

 * change svnmover syntax so that paths given are relative to the branch

   designated by the "-B" option;

 * mkbranch <top-level-branch>

 * rmbranch <top-level-branch>

 * command-line syntax for addressing things in other top-level branches,

   e.g. <path>@[<rev>].[B<branch-id>]

   or   ^B<branch-id>/path[@rev]

* subversion/include/private/svn_branch.h

 (svn_branch_add_new_branch,

  svn_branch_branch_subtree): Take the revision root as a separate parameter.

* subversion/libsvn_delta/branch.c

 (svn_branch_instantiate_subtree): Adjust calls to track the API changes.

 (svn_branch_add_new_branch,

  svn_branch_branch_subtree): Take the revision root as a separate parameter.

 (svn_branch_revision_root_delete_branch): Also update the list of

   top-level branches, in preparation for when we can delete a top-level

   branch.

 (svn_branch_delete_branch_r): Remove a dereference that was redundant for

   nested branches but would have broken when deleting a top-level branch.

 (svn_branch_repos_find_el_rev_by_path_rev): Error out nicely if asked to

   look in a nonexistent top-level branch.

* subversion/libsvn_delta/compat3e.c

 (drive_changes_branch): Create the top-level storage node for any newly

   created top-level branch.

* subversion/svnmover/svnmover.c

 (commit_callback_baton_t,

  display_diff_of_commit): Rename a baton field, for clarity.

 (wc_commit): Support creating a new top-level branch as part of the commit.

 (action_code_t,

  action_defn): Add a 'tbranch' subcommand.

 (do_topbranch): New.

 (execute): Implement the 'tbranch' subcommand.

 (find_el_rev_by_rrpath_rev): Adjust doc string now that it can return an

   error if the given top-level branch does not exist at the requested rev.

 (svn_branch_replay,

  merge_subbranch,

  mk_branch,

  do_branch): Adjust calls to track the API changes.

Show less