diff options
author | Peter Wemm <peter@FreeBSD.org> | 2015-08-09 04:37:39 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2015-08-09 04:37:39 +0000 |
commit | 58218291fa73a17020ef0447398e9e8a78f9e8c7 (patch) | |
tree | 78a13bd0acf7405df6eb6ca94a4e354d124065a6 /subversion/svn | |
parent | 6f0665939667af9f780762878fc35982e8b7d745 (diff) | |
download | src-58218291fa73a17020ef0447398e9e8a78f9e8c7.tar.gz src-58218291fa73a17020ef0447398e9e8a78f9e8c7.zip |
Vendor import subversion-1.8.14vendor/subversion/subversion-1.8.14
Notes
Notes:
svn path=/vendor/subversion/dist/; revision=286501
svn path=/vendor/subversion/subversion-1.8.14/; revision=286502; tag=vendor/subversion/subversion-1.8.14
Diffstat (limited to 'subversion/svn')
-rw-r--r-- | subversion/svn/conflict-callbacks.c | 91 | ||||
-rw-r--r-- | subversion/svn/list-cmd.c | 19 | ||||
-rw-r--r-- | subversion/svn/svn.c | 15 |
3 files changed, 29 insertions, 96 deletions
diff --git a/subversion/svn/conflict-callbacks.c b/subversion/svn/conflict-callbacks.c index b5cdf5f0785e..0f12413d241b 100644 --- a/subversion/svn/conflict-callbacks.c +++ b/subversion/svn/conflict-callbacks.c @@ -509,24 +509,6 @@ static const resolver_option_t prop_conflict_options[] = { NULL } }; -/* Resolver options for an obstructued addition */ -static const resolver_option_t obstructed_add_options[] = -{ - { "mf", N_("my version"), N_("accept pre-existing item (ignore " - "upstream addition) [mine-full]"), - svn_wc_conflict_choose_mine_full }, - { "tf", N_("their version"), N_("accept incoming item (overwrite " - "pre-existing item) [theirs-full]"), - svn_wc_conflict_choose_theirs_full }, - { "p", N_("postpone"), N_("mark the conflict to be resolved later" - " [postpone]"), - svn_wc_conflict_choose_postpone }, - { "q", N_("quit resolution"), N_("postpone all remaining conflicts"), - svn_wc_conflict_choose_postpone }, - { "h", N_("help"), N_("show this help (also '?')"), -1 }, - { NULL } -}; - /* Resolver options for a tree conflict */ static const resolver_option_t tree_conflict_options[] = { @@ -1132,56 +1114,6 @@ handle_tree_conflict(svn_wc_conflict_result_t *result, return SVN_NO_ERROR; } -/* Ask the user what to do about the obstructed add described by DESC. - * Return the answer in RESULT. B is the conflict baton for this - * conflict resolution session. - * SCRATCH_POOL is used for temporary allocations. */ -static svn_error_t * -handle_obstructed_add(svn_wc_conflict_result_t *result, - const svn_wc_conflict_description2_t *desc, - svn_cl__interactive_conflict_baton_t *b, - apr_pool_t *scratch_pool) -{ - apr_pool_t *iterpool; - - SVN_ERR(svn_cmdline_fprintf( - stderr, scratch_pool, - _("Conflict discovered when trying to add '%s'.\n" - "An object of the same name already exists.\n"), - svn_cl__local_style_skip_ancestor(b->path_prefix, - desc->local_abspath, - scratch_pool))); - - iterpool = svn_pool_create(scratch_pool); - while (1) - { - const resolver_option_t *opt; - - svn_pool_clear(iterpool); - - SVN_ERR(prompt_user(&opt, obstructed_add_options, NULL, b->pb, - iterpool)); - if (! opt) - continue; - - if (strcmp(opt->code, "q") == 0) - { - result->choice = opt->choice; - b->accept_which = svn_cl__accept_postpone; - b->quit = TRUE; - break; - } - else if (opt->choice != -1) - { - result->choice = opt->choice; - break; - } - } - svn_pool_destroy(iterpool); - - return SVN_NO_ERROR; -} - /* The body of svn_cl__conflict_func_interactive(). */ static svn_error_t * conflict_func_interactive(svn_wc_conflict_result_t **result, @@ -1330,29 +1262,6 @@ conflict_func_interactive(svn_wc_conflict_result_t **result, SVN_ERR(handle_text_conflict(*result, desc, b, scratch_pool)); else if (desc->kind == svn_wc_conflict_kind_property) SVN_ERR(handle_prop_conflict(*result, desc, b, result_pool, scratch_pool)); - - /* - Dealing with obstruction of additions can be tricky. The - obstructing item could be unversioned, versioned, or even - schedule-add. Here's a matrix of how the caller should behave, - based on results we return. - - Unversioned Versioned Schedule-Add - - choose_mine skip addition, skip addition skip addition - add existing item - - choose_theirs destroy file, schedule-delete, revert add, - add new item. add new item. rm file, - add new item - - postpone [ bail out ] - - */ - else if ((desc->action == svn_wc_conflict_action_add) - && (desc->reason == svn_wc_conflict_reason_obstructed)) - SVN_ERR(handle_obstructed_add(*result, desc, b, scratch_pool)); - else if (desc->kind == svn_wc_conflict_kind_tree) SVN_ERR(handle_tree_conflict(*result, desc, b, scratch_pool)); diff --git a/subversion/svn/list-cmd.c b/subversion/svn/list-cmd.c index efe427942d5f..022ad54975d8 100644 --- a/subversion/svn/list-cmd.c +++ b/subversion/svn/list-cmd.c @@ -49,6 +49,12 @@ struct print_baton { svn_boolean_t in_external; }; +/* Field flags required for this function */ +static const apr_uint32_t print_dirent_fields = SVN_DIRENT_KIND; +static const apr_uint32_t print_dirent_fields_verbose = ( + SVN_DIRENT_KIND | SVN_DIRENT_SIZE | SVN_DIRENT_TIME | + SVN_DIRENT_CREATED_REV | SVN_DIRENT_LAST_AUTHOR); + /* This implements the svn_client_list_func2_t API, printing a single directory entry in text format. */ static svn_error_t * @@ -161,7 +167,10 @@ print_dirent(void *baton, } } - +/* Field flags required for this function */ +static const apr_uint32_t print_dirent_xml_fields = ( + SVN_DIRENT_KIND | SVN_DIRENT_SIZE | SVN_DIRENT_TIME | + SVN_DIRENT_CREATED_REV | SVN_DIRENT_LAST_AUTHOR); /* This implements the svn_client_list_func2_t API, printing a single dirent in XML format. */ static svn_error_t * @@ -313,10 +322,12 @@ svn_cl__list(apr_getopt_t *os, "mode")); } - if (opt_state->verbose || opt_state->xml) - dirent_fields = SVN_DIRENT_ALL; + if (opt_state->xml) + dirent_fields = print_dirent_xml_fields; + else if (opt_state->verbose) + dirent_fields = print_dirent_fields_verbose; else - dirent_fields = SVN_DIRENT_KIND; /* the only thing we actually need... */ + dirent_fields = print_dirent_fields; pb.ctx = ctx; pb.verbose = opt_state->verbose; diff --git a/subversion/svn/svn.c b/subversion/svn/svn.c index 52760dd1eb24..c2db8bf68e50 100644 --- a/subversion/svn/svn.c +++ b/subversion/svn/svn.c @@ -1327,6 +1327,13 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] = " directory:\n" " svn:ignore - A list of file glob patterns to ignore, one per line.\n" " svn:global-ignores - Like svn:ignore, but inheritable.\n" + " svn:auto-props - Automatically set properties on files when they are\n" + " added or imported. Contains key-value pairs, one per line, in the format:\n" + " PATTERN = PROPNAME=VALUE[;PROPNAME=VALUE ...]\n" + " Example (where a literal ';' is escaped by adding another ';'):\n" + " *.html = svn:eol-style=native;svn:mime-type=text/html;; charset=UTF8\n" + " Applies recursively to all files added or imported under the directory\n" + " it is set on. See also [auto-props] in the client configuration file.\n" " svn:externals - A list of module specifiers, one per line, in the\n" " following format similar to the syntax of 'svn checkout':\n" " [-r REV] URL[@PEG] LOCALPATH\n" @@ -2514,9 +2521,15 @@ sub_main(int argc, const char *argv[], apr_pool_t *pool) if (APR_STATUS_IS_EACCES(err->apr_err) || SVN__APR_STATUS_IS_ENOTDIR(err->apr_err)) { + svn_config_t *empty_cfg; + svn_handle_warning2(stderr, err, "svn: "); svn_error_clear(err); - cfg_hash = NULL; + cfg_hash = apr_hash_make(pool); + SVN_INT_ERR(svn_config_create2(&empty_cfg, FALSE, FALSE, pool)); + svn_hash_sets(cfg_hash, SVN_CONFIG_CATEGORY_CONFIG, empty_cfg); + SVN_INT_ERR(svn_config_create2(&empty_cfg, FALSE, FALSE, pool)); + svn_hash_sets(cfg_hash, SVN_CONFIG_CATEGORY_SERVERS, empty_cfg); } else return EXIT_ERROR(err); |