Author: julianfoad
Date: Fri Jan 12 16:32:25 2018
New Revision: 1821003
URL: http://svn.apache.org/viewvc?rev=1821003&view=rev
Log:
On the 'shelve-checkpoint' branch: a more regular CLI command set.
Modified:
subversion/branches/shelve-checkpoint/subversion/svn/cl.h
subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
subversion/branches/shelve-checkpoint/subversion/svn/svn.c
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/shelve_tests.py
subversion/branches/shelve-checkpoint/tools/client-side/bash_completion
Modified: subversion/branches/shelve-checkpoint/subversion/svn/cl.h
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/cl.h?rev=1821003&r1=1821002&r2=1821003&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/cl.h (original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/cl.h Fri Jan 12
16:32:25 2018
@@ -279,7 +279,6 @@ svn_opt_subcommand_t
svn_cl__cat,
svn_cl__changelist,
svn_cl__checkout,
- svn_cl__checkpoint,
svn_cl__cleanup,
svn_cl__commit,
svn_cl__copy,
@@ -309,10 +308,11 @@ svn_opt_subcommand_t
svn_cl__shelf,
svn_cl__shelf_diff,
svn_cl__shelf_drop,
+ svn_cl__shelf_list,
svn_cl__shelf_log,
+ svn_cl__shelf_save,
svn_cl__shelve,
svn_cl__unshelve,
- svn_cl__shelves,
svn_cl__status,
svn_cl__switch,
svn_cl__unlock,
Modified: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c?rev=1821003&r1=1821002&r2=1821003&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c (original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c Fri Jan
12 16:32:25 2018
@@ -604,73 +604,6 @@ shelf_drop(const char *name,
return SVN_NO_ERROR;
}
-/* This implements the `svn_opt_subcommand_t' interface. */
-svn_error_t *
-svn_cl__shelf(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
-{
- svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
- const char *local_abspath;
- const char *name;
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
-
- if (opt_state->list)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelves_list(local_abspath,
- ! opt_state->quiet /*with_logmsg*/,
- ! opt_state->quiet /*with_diffstat*/,
- ctx, pool));
- return SVN_NO_ERROR;
- }
-
- SVN_ERR(get_next_argument(&name, os, pool, pool));
-
- if (opt_state->remove)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelf_drop(name, local_abspath,
- opt_state->dry_run, opt_state->quiet,
- ctx, pool));
- return SVN_NO_ERROR;
- }
-
- if (opt_state->log)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelf_log(name, local_abspath,
- !opt_state->quiet, ctx, pool));
- return SVN_NO_ERROR;
- }
-
- if (opt_state->show_diff)
- {
- const char *arg = NULL;
-
- /* Which checkpoint number? */
- if (os->ind < os->argc)
- SVN_ERR(get_next_argument(&arg, os, pool, pool));
-
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelf_diff(name, arg, local_abspath,
- ctx, pool));
- return SVN_NO_ERROR;
- }
-
- return SVN_NO_ERROR;
-}
-
/* */
static svn_error_t *
shelf_shelve(int *new_version,
@@ -709,6 +642,19 @@ shelf_shelve(int *new_version,
/* This implements the `svn_opt_subcommand_t' interface. */
svn_error_t *
+svn_cl__shelf_save(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+
+ opt_state->keep_local = TRUE;
+ SVN_ERR(svn_cl__shelve(os, baton, pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
svn_cl__shelve(apr_getopt_t *os,
void *baton,
apr_pool_t *pool)
@@ -746,9 +692,16 @@ svn_cl__shelve(apr_getopt_t *os,
SVN_ERR(err);
if (! opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool,
- _("shelved '%s' version %d\n"),
- name, new_version));
+ {
+ if (opt_state->keep_local)
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("saved '%s' version %d\n"),
+ name, new_version));
+ else
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("shelved '%s' version %d\n"),
+ name, new_version));
+ }
}
return SVN_NO_ERROR;
@@ -764,7 +717,7 @@ svn_cl__unshelve(apr_getopt_t *os,
svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
const char *local_abspath;
const char *name;
- apr_array_header_t *targets;
+ const char *arg = NULL;
SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", scratch_pool));
@@ -781,17 +734,18 @@ svn_cl__unshelve(apr_getopt_t *os,
name));
}
- /* There should be no remaining arguments. */
- SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
- opt_state->targets,
- ctx, FALSE,
scratch_pool));
- if (targets->nelts)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
+ /* Which checkpoint number? */
+ if (os->ind < os->argc)
+ SVN_ERR(get_next_argument(&arg, os, scratch_pool, scratch_pool));
+
+ if (os->ind < os->argc)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Too many arguments"));
if (opt_state->quiet)
ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
- SVN_ERR(shelf_restore(name, NULL,
+ SVN_ERR(shelf_restore(name, arg,
opt_state->dry_run, opt_state->quiet,
local_abspath, ctx, scratch_pool));
@@ -800,9 +754,9 @@ svn_cl__unshelve(apr_getopt_t *os,
/* This implements the `svn_opt_subcommand_t' interface. */
svn_error_t *
-svn_cl__shelves(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
+svn_cl__shelf_list(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
{
svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
@@ -889,7 +843,8 @@ svn_cl__shelf_log(apr_getopt_t *os,
/* There should be no remaining arguments. */
if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0,
+ _("Too many arguments"));
SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
SVN_ERR(shelf_log(name, local_abspath,
@@ -901,103 +856,61 @@ svn_cl__shelf_log(apr_getopt_t *os,
/* This implements the `svn_opt_subcommand_t' interface. */
svn_error_t *
-svn_cl__checkpoint(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
+svn_cl__shelf(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
{
svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
const char *subsubcommand;
- apr_array_header_t *targets;
- const char *local_abspath;
- const char *name;
-
- SVN_ERR(get_next_argument(&subsubcommand, os, pool, pool));
-
- SVN_ERR(get_next_argument(&name, os, pool, pool));
-
- /* Parse the remaining arguments as paths. */
- SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
- opt_state->targets,
- ctx, FALSE, pool));
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
-
- if (opt_state->quiet)
- ctx->notify_func2 = NULL;
- if (strcmp(subsubcommand, "log") == 0)
+ if (opt_state->show_diff)
{
- if (targets->nelts)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
- _("Too many arguments"));
-
- SVN_ERR(shelf_log(name, local_abspath,
- !opt_state->quiet /*diffstat*/,
- ctx, pool));
+ SVN_ERR(svn_cl__shelf_diff(os, baton, pool));
+ return SVN_NO_ERROR;
}
- else if (strcmp(subsubcommand, "save") == 0)
+ else if (opt_state->remove)
{
- int new_version;
- svn_error_t *err;
-
- if (ctx->log_msg_func3)
- SVN_ERR(svn_cl__make_log_msg_baton(&ctx->log_msg_baton3,
- opt_state, NULL, ctx->config,
- pool));
- err = shelf_shelve(&new_version, name,
- targets, opt_state->depth, opt_state->changelists,
- TRUE /*keep_local*/, opt_state->dry_run,
- ctx, pool);
- if (ctx->log_msg_func3)
- SVN_ERR(svn_cl__cleanup_log_msg(ctx->log_msg_baton3,
- err, pool));
- else
- SVN_ERR(err);
-
- if (!opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool,
- _("saved '%s' version %d\n"),
- name, new_version));
- }
- else if (strcmp(subsubcommand, "restore") == 0)
- {
- const char *arg = NULL;
-
- if (targets->nelts > 1)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
- _("Too many arguments"));
-
- /* Which checkpoint number? */
- if (targets->nelts != 1)
- arg = NULL;
- else
- arg = APR_ARRAY_IDX(targets, 0, char *);
-
- SVN_ERR(shelf_restore(name, arg,
- opt_state->dry_run, opt_state->quiet,
- local_abspath, ctx, pool));
+ SVN_ERR(svn_cl__shelf_drop(os, baton, pool));
+ return SVN_NO_ERROR;
}
- else if (strcmp(subsubcommand, "diff") == 0)
+ else if (opt_state->list)
{
- const char *arg;
-
- /* Which checkpoint number? */
- if (os->ind < os->argc)
- arg = NULL;
- else
- arg = APR_ARRAY_IDX(targets, 0, char *);
+ SVN_ERR(svn_cl__shelf_list(os, baton, pool));
+ return SVN_NO_ERROR;
+ }
+ else if (opt_state->log)
+ {
+ SVN_ERR(svn_cl__shelf_log(os, baton, pool));
+ return SVN_NO_ERROR;
+ }
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
- _("Too many arguments"));
+ SVN_ERR(get_next_argument(&subsubcommand, os, pool, pool));
- SVN_ERR(shelf_diff(name, arg, local_abspath, ctx, pool));
+ if (strcmp(subsubcommand, "diff") == 0)
+ {
+ SVN_ERR(svn_cl__shelf_diff(os, baton, pool));
+ }
+ else if (strcmp(subsubcommand, "drop") == 0)
+ {
+ SVN_ERR(svn_cl__shelf_drop(os, baton, pool));
+ }
+ else if (strcmp(subsubcommand, "list") == 0)
+ {
+ SVN_ERR(svn_cl__shelf_list(os, baton, pool));
+ }
+ else if (strcmp(subsubcommand, "log") == 0)
+ {
+ SVN_ERR(svn_cl__shelf_log(os, baton, pool));
+ }
+ else if (strcmp(subsubcommand, "save") == 0)
+ {
+ SVN_ERR(svn_cl__shelf_save(os, baton, pool));
}
else
{
return svn_error_createf(SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
- _("checkpoint: Unknown checkpoint command '%s';
"
- "try 'svn help checkpoint'"),
+ _("Unknown shelf command '%s'; "
+ "try 'svn help shelf'"),
subsubcommand);
}
Modified: subversion/branches/shelve-checkpoint/subversion/svn/svn.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/svn.c?rev=1821003&r1=1821002&r2=1821003&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/svn.c (original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/svn.c Fri Jan 12
16:32:25 2018
@@ -474,7 +474,7 @@ const apr_getopt_option_t svn_cl__option
{"vacuum-pristines", opt_vacuum_pristines, 0,
N_("remove unreferenced pristines from .svn
directory")},
- {"list", opt_list, 0, N_("list shelves or checkpoints")},
+ {"list", opt_list, 0, N_("list shelves")},
{"drop", opt_drop, 0, N_("delete a shelf")},
{"log", opt_log, 0, N_("show versions of a shelf")},
@@ -1690,66 +1690,34 @@ const svn_opt_subcommand_desc2_t svn_cl_
" the output of 'svn help merge' for 'undo'.\n"),
{opt_targets, 'R', opt_depth, 'q', opt_changelist} },
- { "savepoint", svn_cl__checkpoint, {"sp", "checkpoint"}, N_
- ("Save and restore local changes.\n"
- "usage: 1. savepoint save NAME [PATH...]\n"
- " 2. savepoint restore NAME [VERSION]\n"
- " 3. savepoint log NAME\n"
- " 4. savepoint diff NAME [VERSION]\n"
- "\n"
- " 1. Save local changes in the given PATHs as a new version of shelf
NAME.\n"
- " A new log message can be given with -m, -F, etc.\n"
- "\n"
- " The same as 'svn shelve --keep-local'.\n"
- "\n"
- " 2. Apply the VERSION (default: latest) of shelf NAME to the working
copy.\n"
- "\n"
- " The same as 'svn unshelve'.\n"
- "\n"
- " 3. List all versions of shelf NAME.\n"
- "\n"
- " 4. Show the changes in shelf NAME:VERSION (default: latest) as a
diff.\n"
- "\n"
- " The default PATH is the current working directory.\n"
+ { "shelf", svn_cl__shelf, {0}, N_
+ ("Examine or manage a shelf.\n"
+ "usage: 1. shelf diff | shelf --diff -> see shelf-diff\n"
+ " 2. shelf drop | shelf --drop -> see shelf-drop\n"
+ " 3. shelf list | shelf --list -> see shelf-list (shelves)\n"
+ " 4. shelf log | shelf --log -> see shelf-log\n"
+ " 5. shelf save -> see shelf-save\n"
+ "\n"
+ " See also:\n"
+ " shelve\n"
+ " unshelve\n"
"\n"
" The shelving feature is EXPERIMENTAL. This command is likely to
change\n"
" in the next release, and there is no promise of backward
compatibility.\n"
),
- {'q', opt_dry_run,
+ {opt_diff, opt_drop, opt_list, opt_log,
+ opt_dry_run, 'q',
opt_depth, opt_targets, opt_changelist,
/* almost SVN_CL__LOG_MSG_OPTIONS but not currently opt_with_revprop: */
'm', 'F', opt_force_log, opt_editor_cmd, opt_encoding,
}
},
- { "shelf", svn_cl__shelf, {0}, N_
- ("Examine or manage a shelf.\n"
- "usage: 1. shelf --diff NAME [VERSION]\n"
- " 2. shelf --drop [--dry-run] NAME\n"
- " 3. shelf --list\n"
- " 4. shelf --log NAME\n"
- "\n"
- " 1. Show the changes in shelf NAME:VERSION (default: latest) as a
diff.\n"
- "\n"
- " 2. Delete the shelf named NAME.\n"
- "\n"
- " 3. List shelves. Include the first line of any log message\n"
- " and some details about the contents of the shelf, unless '-q' is\n"
- " given.\n"
- "\n"
- " 4. List all versions of shelf NAME.\n"
- "\n"
- " The shelving feature is EXPERIMENTAL. This command is likely to
change\n"
- " in the next release, and there is no promise of backward
compatibility.\n"
- ),
- {opt_diff, opt_drop, opt_list, opt_log, opt_dry_run, 'q'}
- },
-
{ "shelf-diff", svn_cl__shelf_diff, {0}, N_
("Show shelved changes as a diff.\n"
"usage: shelf-diff NAME [VERSION]\n"
"\n"
- " Export the shelf NAME:VERSION (default: latest) as a patch.\n"
+ " Show the changes in shelf NAME:VERSION (default: latest) as a diff.\n"
"\n"
" The shelving feature is EXPERIMENTAL. This command is likely to
change\n"
" in the next release, and there is no promise of backward
compatibility.\n"
@@ -1767,7 +1735,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
),
},
- { "shelf-list", svn_cl__shelves, {"shelves"}, N_
+ { "shelf-list", svn_cl__shelf_list, {"shelves"}, N_
("List shelves.\n"
"usage: shelf-list\n"
"\n"
@@ -1785,14 +1753,35 @@ const svn_opt_subcommand_desc2_t svn_cl_
("Show the versions of a shelf.\n"
"usage: shelf-log NAME\n"
"\n"
+ " Show all versions of shelf NAME.\n"
+ "\n"
" The shelving feature is EXPERIMENTAL. This command is likely to
change\n"
" in the next release, and there is no promise of backward
compatibility.\n"
),
{'q'}
},
+ { "shelf-save", svn_cl__shelf_save, {0}, N_
+ ("Copy local changes onto a new version of a shelf.\n"
+ "usage: shelf-log NAME\n"
+ "\n"
+ " Save local changes in the given PATHs as a new version of shelf
NAME.\n"
+ " A new log message can be given with -m, -F, etc.\n"
+ "\n"
+ " The same as 'svn shelve --keep-local'.\n"
+ "\n"
+ " The shelving feature is EXPERIMENTAL. This command is likely to
change\n"
+ " in the next release, and there is no promise of backward
compatibility.\n"
+ ),
+ {'q', opt_dry_run,
+ opt_depth, opt_targets, opt_changelist,
+ /* almost SVN_CL__LOG_MSG_OPTIONS but not currently opt_with_revprop: */
+ 'm', 'F', opt_force_log, opt_editor_cmd, opt_encoding,
+ }
+ },
+
{ "shelve", svn_cl__shelve, {0}, N_
- ("Put local changes aside, as if putting them on a shelf.\n"
+ ("Move local changes onto a shelf.\n"
"usage: shelve [--keep-local] NAME [PATH...]\n"
"\n"
" Save the local changes in the given PATHs to a shelf named NAME.\n"
@@ -1800,7 +1789,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
" If a log message is given with '-m' or '-F', replace the shelf's\n"
" current log message (if any).\n"
"\n"
- " 'svn shelve --keep-local' is like 'svn checkpoint save'.\n"
+ " 'svn shelve --keep-local' is the same as 'svn shelf-save'.\n"
"\n"
" The kinds of change you can shelve are those supported by 'svn diff'\n"
" and 'svn patch'. The following are currently NOT supported:\n"
@@ -1821,13 +1810,13 @@ const svn_opt_subcommand_desc2_t svn_cl_
} },
{ "unshelve", svn_cl__unshelve, {0}, N_
- ("Bring shelved changes back into the WC.\n"
- "usage: unshelve [NAME]\n"
+ ("Copy shelved changes back into the WC.\n"
+ "usage: unshelve [NAME [VERSION]]\n"
"\n"
" Apply the shelf named NAME to the working copy.\n"
- " NAME defaults to the most recent shelf.\n"
+ " NAME defaults to the newest shelf.\n"
"\n"
- " Like 'svn checkpoint restore'.\n"
+ " The same as 'svn shelf-restore'.\n"
"\n"
" Any conflict between the change being unshelved and a change\n"
" already in the WC is handled the same way as by 'svn patch',\n"
@@ -1838,15 +1827,6 @@ const svn_opt_subcommand_desc2_t svn_cl_
),
{'q', opt_dry_run} },
- { "shelves", svn_cl__shelves, {0}, N_
- ("List shelves.\n"
- "usage: shelves\n"
- "\n"
- " The shelving feature is EXPERIMENTAL. This command is likely to
change\n"
- " in the next release, and there is no promise of backward
compatibility.\n"
- ),
- {'q'} },
-
{ "status", svn_cl__status, {"stat", "st"}, N_
("Print the status of working copy files and directories.\n"
"usage: status [PATH...]\n"
@@ -3115,7 +3095,7 @@ sub_main(int *exit_code, int argc, const
|| subcommand->cmd_func == svn_cl__move
|| subcommand->cmd_func == svn_cl__lock
|| subcommand->cmd_func == svn_cl__propedit
- || subcommand->cmd_func == svn_cl__checkpoint
+ || subcommand->cmd_func == svn_cl__shelf
|| subcommand->cmd_func == svn_cl__shelve))
{
/* If the -F argument is a file that's under revision control,
Modified:
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/shelve_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/tests/cmdline/shelve_tests.py?rev=1821003&r1=1821002&r2=1821003&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/shelve_tests.py
(original)
+++
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/shelve_tests.py
Fri Jan 12 16:32:25 2018
@@ -178,14 +178,14 @@ def save_revert_restore(sbox, modifier1,
# Save a checkpoint; check nothing changed
svntest.actions.run_and_verify_svn(None, [],
- 'sp', 'save', 'foo')
+ 'shelf-save', 'foo')
svntest.actions.run_and_verify_status(wc_dir, modified_state1)
# Modify again; remember the state; save a checkpoint
modifier2(sbox)
modified_state2 = state_from_status(wc_dir)
svntest.actions.run_and_verify_svn(None, [],
- 'sp', 'save', 'foo')
+ 'shelf-save', 'foo')
svntest.actions.run_and_verify_status(wc_dir, modified_state2)
# Revert
@@ -196,7 +196,7 @@ def save_revert_restore(sbox, modifier1,
# Restore; check the original modifications are here again
svntest.actions.run_and_verify_svn(None, [],
- 'sp', 'restore', 'foo', '1')
+ 'unshelve', 'foo', '1')
svntest.actions.run_and_verify_status(wc_dir, modified_state1)
os.chdir(was_cwd)
Modified:
subversion/branches/shelve-checkpoint/tools/client-side/bash_completion
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/client-side/bash_completion?rev=1821003&r1=1821002&r2=1821003&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/client-side/bash_completion
(original)
+++ subversion/branches/shelve-checkpoint/tools/client-side/bash_completion Fri
Jan 12 16:32:25 2018
@@ -248,8 +248,8 @@ _svn()
cmds="$cmds patch propdel pdel propedit pedit propget pget proplist"
cmds="$cmds plist propset pset relocate resolve resolved revert status"
cmds="$cmds switch unlock update upgrade"
- cmds="$cmds checkpoint savepoint sp"
- cmds="$cmds shelve shelves unshelve"
+ cmds="$cmds shelf shelf-diff shelf-drop shelf-list shelf-log"
+ cmds="$cmds shelf-save shelve shelves unshelve"
# help options have a strange command status...
local helpOpts='--help -h'
@@ -1023,29 +1023,32 @@ _svn()
upgrade)
cmdOpts="$qOpts $pOpts"
;;
- checkpoint|savepoint|sp)
- cmdOpts="save restore log diff --dry-run \
+ shelf)
+ cmdOpts="diff drop list log save \
+ --diff --drop --list --log \
+ --dry-run \
--depth --targets $cOpts \
-m --message -F --file --encoding --force-log
--editor-cmd \
$qOpts $pOpts"
;;
- shelf)
- cmdOpts="diff drop list log \
- --diff --drop --list --log --dry-run \
- $qOpts $pOpts"
- ;;
shelf-diff)
cmdOpts="$pOpts"
;;
shelf-drop)
cmdOpts="$pOpts"
;;
- shelf-list)
+ shelf-list|shelves)
cmdOpts="$qOpts $pOpts"
;;
shelf-log)
cmdOpts="$qOpts $pOpts"
;;
+ shelf-save)
+ cmdOpts="--dry-run \
+ --depth --targets $cOpts \
+ -m --message -F --file --encoding --force-log
--editor-cmd \
+ $qOpts $pOpts"
+ ;;
shelve)
cmdOpts="--keep-local --dry-run \
--depth --targets $cOpts \
@@ -1056,9 +1059,6 @@ _svn()
cmdOpts="--dry-run \
$qOpts $pOpts"
;;
- shelves)
- cmdOpts="$qOpts $pOpts"
- ;;
*)
;;
esac