Author: julianfoad
Date: Mon Nov 24 15:58:50 2014
New Revision: 1641412
URL: http://svn.apache.org/r1641412
Log:
On the 'move-tracking-2' branch: Add 'svnmover mkbranch' subcommand.
* subversion/svnmover/svnmover.c
(ACTION_MKBRANCH): New constant.
(execute): Implement it.
(usage): Document it.
(sub_main): Parse it.
* subversion/tests/cmdline/svnmover_tests.py
(merges): Use it.
Modified:
subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
subversion/branches/move-tracking-2/subversion/tests/cmdline/svnmover_tests.py
Modified: subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c?rev=1641412&r1=1641411&r2=1641412&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
(original)
+++ subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c Mon Nov
24 15:58:50 2014
@@ -196,6 +196,7 @@ typedef enum action_code_t {
ACTION_LIST_BRANCHES,
ACTION_LIST_BRANCHES_R,
ACTION_BRANCH,
+ ACTION_MKBRANCH,
ACTION_BRANCHIFY,
ACTION_DISSOLVE,
ACTION_MERGE,
@@ -1265,6 +1266,26 @@ execute(const apr_array_header_t *action
iterpool));
made_changes = TRUE;
break;
+ case ACTION_MKBRANCH:
+ VERIFY_REV_UNSPECIFIED("mkbranch", 0);
+ VERIFY_EID_NONEXISTENT("mkbranch", 0);
+ VERIFY_PARENT_EID_EXISTS("mkbranch", 0);
+ {
+ apr_hash_t *props = apr_hash_make(iterpool);
+ svn_editor3_node_content_t *content
+ = svn_editor3_node_content_create_dir(props, iterpool);
+ int new_eid;
+
+ SVN_ERR(svn_editor3_add(editor, &new_eid, svn_node_dir,
+ parent_el_rev[0]->branch,
+ parent_el_rev[0]->eid, path_name[0],
+ content));
+ SVN_ERR(svn_branch_branchify(editor,
+ parent_el_rev[0]->branch, new_eid,
+ iterpool));
+ }
+ made_changes = TRUE;
+ break;
case ACTION_BRANCHIFY:
VERIFY_REV_UNSPECIFIED("branchify", 0);
VERIFY_EID_EXISTS("branchify", 0);
@@ -1442,6 +1463,8 @@ usage(FILE *stream, apr_pool_t *pool)
" ls-br-r : list all branches, recursively\n"
" branch SRC DST : branch the branch-root or branch-subtree at
SRC\n"
" to make a new branch at DST\n"
+ " mkbranch ROOT : make a directory that's the root of a new
branch\n"
+ " in a new branching family; like
mkdir+branchify\n"
" branchify ROOT : change the existing simple subtree at ROOT
into\n"
" a sub-branch (presently, in a new branch
family)\n"
" dissolve ROOT : change the existing sub-branch at ROOT into
a\n"
@@ -1880,6 +1903,8 @@ sub_main(int *exit_code, int argc, const
action->action = ACTION_LIST_BRANCHES_R;
else if (! strcmp(action_string, "branch"))
action->action = ACTION_BRANCH;
+ else if (! strcmp(action_string, "mkbranch"))
+ action->action = ACTION_MKBRANCH;
else if (! strcmp(action_string, "branchify"))
action->action = ACTION_BRANCHIFY;
else if (! strcmp(action_string, "dissolve"))
@@ -1917,6 +1942,7 @@ sub_main(int *exit_code, int argc, const
/* How many URLs does this action expect? */
if (action->action == ACTION_RM
|| action->action == ACTION_MKDIR
+ || action->action == ACTION_MKBRANCH
|| action->action == ACTION_BRANCHIFY
|| action->action == ACTION_DISSOLVE)
num_url_args = 1;
Modified:
subversion/branches/move-tracking-2/subversion/tests/cmdline/svnmover_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/tests/cmdline/svnmover_tests.py?rev=1641412&r1=1641411&r2=1641412&view=diff
==============================================================================
---
subversion/branches/move-tracking-2/subversion/tests/cmdline/svnmover_tests.py
(original)
+++
subversion/branches/move-tracking-2/subversion/tests/cmdline/svnmover_tests.py
Mon Nov 24 15:58:50 2014
@@ -358,8 +358,7 @@ def merges(sbox):
# (r2)
svntest.actions.run_and_verify_svnmover(None, None, [],
'-U', repo_url,
- 'mkdir', 'trunk',
- 'branchify', 'trunk',
+ 'mkbranch', 'trunk',
'mkdir', 'branches')
# Create some nodes in trunk, each one named for how we will modify it.