You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2011/02/02 14:04:59 UTC
svn commit: r1066452 [9/11] - in /subversion/branches/performance: ./ build/
build/ac-macros/ build/generator/ contrib/hook-scripts/ notes/
notes/api-errata/1.7/
subversion/bindings/javahl/tests/org/apache/subversion/javahl/
subversion/include/ subvers...
Modified: subversion/branches/performance/subversion/svn/checkout-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/checkout-cmd.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/checkout-cmd.c (original)
+++ subversion/branches/performance/subversion/svn/checkout-cmd.c Wed Feb 2 13:04:51 2011
@@ -93,9 +93,7 @@ svn_cl__checkout(apr_getopt_t *os,
/* Discard the peg-revision, if one was provided. */
SVN_ERR(svn_opt_parse_path(&pegrev, &local_dir, local_dir, pool));
-
local_dir = svn_uri_basename(local_dir, pool);
- local_dir = svn_path_uri_decode(local_dir, pool);
}
else
{
@@ -145,9 +143,9 @@ svn_cl__checkout(apr_getopt_t *os,
}
else
{
- target_dir = svn_uri_basename(true_url, subpool);
- target_dir = svn_path_uri_decode(target_dir, subpool);
- target_dir = svn_dirent_join(local_dir, target_dir, subpool);
+ target_dir = svn_dirent_join(local_dir,
+ svn_uri_basename(true_url, subpool),
+ subpool);
}
/* Checkout doesn't accept an unspecified revision, so default to
Modified: subversion/branches/performance/subversion/svn/cl.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/cl.h?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/cl.h (original)
+++ subversion/branches/performance/subversion/svn/cl.h Wed Feb 2 13:04:51 2011
@@ -754,18 +754,6 @@ svn_cl__node_description(const svn_wc_co
const char *wc_repos_root_URL,
apr_pool_t *pool);
-/* Join a BASE path with a COMPONENT, allocating the result in POOL.
- * COMPONENT need not be a single single component: it can be any path,
- * absolute or relative to BASE.
- *
- * This function exists to gather the cases when it could not be determined
- * if BASE is an uri, dirent or relative.
- */
-const char *
-svn_cl__path_join(const char *base,
- const char *component,
- apr_pool_t *pool);
-
/* Return, in @a *true_targets_p, a copy of @a targets with peg revision
* specifiers snipped off the end of each element.
*
Modified: subversion/branches/performance/subversion/svn/diff-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/diff-cmd.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/diff-cmd.c (original)
+++ subversion/branches/performance/subversion/svn/diff-cmd.c Wed Feb 2 13:04:51 2011
@@ -93,11 +93,18 @@ summarize_xml(const svn_client_diff_summ
/* Tack on the target path, so we can differentiate between different parts
* of the output when we're given multiple targets. */
- path = svn_cl__path_join(path, summary->path, pool);
+ if (svn_path_is_url(path))
+ {
+ path = svn_path_url_add_component2(path, summary->path, pool);
+ }
+ else
+ {
+ path = svn_dirent_join(path, summary->path, pool);
- /* Convert non-urls to local style, so that things like "" show up as "." */
- if (! svn_path_is_url(path))
- path = svn_dirent_local_style(path, pool);
+ /* Convert non-urls to local style, so that things like ""
+ show up as "." */
+ path = svn_dirent_local_style(path, pool);
+ }
svn_xml_make_open_tag(&sb, pool, svn_xml_protect_pcdata, "path",
"kind", svn_cl__node_kind_str_xml(summary->node_kind),
@@ -122,11 +129,18 @@ summarize_regular(const svn_client_diff_
/* Tack on the target path, so we can differentiate between different parts
* of the output when we're given multiple targets. */
- path = svn_uri_join(path, summary->path, pool);
+ if (svn_path_is_url(path))
+ {
+ path = svn_path_url_add_component2(path, summary->path, pool);
+ }
+ else
+ {
+ path = svn_dirent_join(path, summary->path, pool);
- /* Convert non-urls to local style, so that things like "" show up as "." */
- if (! svn_path_is_url(path))
- path = svn_dirent_local_style(path, pool);
+ /* Convert non-urls to local style, so that things like ""
+ show up as "." */
+ path = svn_dirent_local_style(path, pool);
+ }
/* Note: This output format tries to look like the output of 'svn status',
* thus the blank spaces where information that is not relevant to
@@ -311,8 +325,15 @@ svn_cl__diff(apr_getopt_t *os,
_("Path '%s' not relative to base URLs"),
path);
- target1 = svn_cl__path_join(old_target, path, iterpool);
- target2 = svn_cl__path_join(new_target, path, iterpool);
+ path = svn_relpath_canonicalize(path, iterpool);
+ if (svn_path_is_url(old_target))
+ target1 = svn_path_url_add_component2(old_target, path, iterpool);
+ else
+ target1 = svn_dirent_join(old_target, path, iterpool);
+ if (svn_path_is_url(old_target))
+ target2 = svn_path_url_add_component2(new_target, path, iterpool);
+ else
+ target2 = svn_dirent_join(new_target, path, iterpool);
if (opt_state->summarize)
SVN_ERR(svn_client_diff_summarize2
Modified: subversion/branches/performance/subversion/svn/export-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/export-cmd.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/export-cmd.c (original)
+++ subversion/branches/performance/subversion/svn/export-cmd.c Wed Feb 2 13:04:51 2011
@@ -74,7 +74,10 @@ svn_cl__export(apr_getopt_t *os,
the `to' path. Else, a `to' path was supplied. */
if (targets->nelts == 1)
{
- to = svn_path_uri_decode(svn_uri_basename(truefrom, pool), pool);
+ if (svn_path_is_url(truefrom))
+ to = svn_uri_basename(truefrom, pool);
+ else
+ to = svn_dirent_basename(truefrom, pool);
}
else
{
Modified: subversion/branches/performance/subversion/svn/lock-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/lock-cmd.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/lock-cmd.c (original)
+++ subversion/branches/performance/subversion/svn/lock-cmd.c Wed Feb 2 13:04:51 2011
@@ -74,7 +74,7 @@ get_comment(const char **comment, svn_cl
/* Translate to UTF8/LF. */
SVN_ERR(svn_subst_translate_string2(&comment_string, NULL, NULL,
comment_string, opt_state->encoding,
- pool, pool));
+ FALSE, pool, pool));
*comment = comment_string->data;
return SVN_NO_ERROR;
Modified: subversion/branches/performance/subversion/svn/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/main.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/main.c (original)
+++ subversion/branches/performance/subversion/svn/main.c Wed Feb 2 13:04:51 2011
@@ -125,7 +125,6 @@ typedef enum svn_cl__longopt_t {
opt_allow_mixed_revisions,
} svn_cl__longopt_t;
-#define SVN_CL__OPTION_CONTINUATION_INDENT " "
/* Option codes and descriptions for the command line client.
*
@@ -144,23 +143,23 @@ const apr_getopt_option_t svn_cl__option
{"non-recursive", 'N', 0, N_("obsolete; try --depth=files or --depth=immediates")},
{"change", 'c', 1,
N_("the change made by revision ARG (like -r ARG-1:ARG)\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"If ARG is negative this is like -r ARG:ARG-1")},
{"revision", 'r', 1,
N_("ARG (some commands also take ARG1:ARG2 range)\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"A revision argument can be one of:\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" NUMBER revision number\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" '{' DATE '}' revision at start of the date\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" 'HEAD' latest in repository\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" 'BASE' base rev of item's working copy\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" 'COMMITTED' last commit at or before BASE\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" 'PREV' revision just before COMMITTED")},
{"file", 'F', 1, N_("read log message from file ARG")},
{"incremental", opt_incremental, 0,
@@ -174,45 +173,45 @@ const apr_getopt_option_t svn_cl__option
{"password", opt_auth_password, 1, N_("specify a password ARG")},
{"extensions", 'x', 1,
N_("Default: '-u'. When Subversion is invoking an\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"external diff program, ARG is simply passed along\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"to the program. But when Subversion is using its\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"default internal diff implementation, or when\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"Subversion is displaying blame annotations, ARG\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"could be any of the following:\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" -u (--unified):\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" Output 3 lines of unified context.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" -b (--ignore-space-change):\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" Ignore changes in the amount of white space.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" -w (--ignore-all-space):\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" Ignore all white space.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" --ignore-eol-style:\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" Ignore changes in EOL style.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" -p (--show-c-function):\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" Show C function name in diff output.")},
{"targets", opt_targets, 1,
N_("pass contents of file ARG as additional args")},
{"depth", opt_depth, 1,
N_("limit operation by depth ARG ('empty', 'files',\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"'immediates', or 'infinity')")},
{"set-depth", opt_set_depth, 1,
N_("set new working copy depth to ARG ('exclude',\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"'empty', 'files', 'immediates', or 'infinity')")},
{"xml", opt_xml, 0, N_("output in XML")},
{"strict", opt_strict, 0, N_("use strict semantics")},
@@ -224,7 +223,7 @@ const apr_getopt_option_t svn_cl__option
N_("do not cache authentication tokens")},
{"trust-server-cert", opt_trust_server_cert, 0,
N_("accept unknown SSL server certificates without\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"prompting (but only with '--non-interactive')")},
{"non-interactive", opt_non_interactive, 0,
N_("do no interactive prompting")},
@@ -252,21 +251,21 @@ const apr_getopt_option_t svn_cl__option
N_("read user configuration files from directory ARG")},
{"config-option", opt_config_options, 1,
N_("set user configuration option in the format:\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" FILE:SECTION:OPTION=[VALUE]\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"For example:\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
" servers:global:http-library=serf")},
{"auto-props", opt_autoprops, 0, N_("enable automatic properties")},
{"no-auto-props", opt_no_autoprops, 0, N_("disable automatic properties")},
{"native-eol", opt_native_eol, 1,
N_("use a different EOL marker than the standard\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"system marker for files with the svn:eol-style\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"property set to 'native'.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"ARG may be one of 'LF', 'CR', 'CRLF'")},
{"limit", 'l', 1, N_("maximum number of log entries")},
{"no-unlock", opt_no_unlock, 0, N_("don't unlock the targets")},
@@ -283,42 +282,42 @@ const apr_getopt_option_t svn_cl__option
N_("retrieve no revision properties")},
{"with-revprop", opt_with_revprop, 1,
N_("set revision property ARG in new revision\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"using the name[=value] format")},
{"parents", opt_parents, 0, N_("make intermediate directories")},
{"use-merge-history", 'g', 0,
N_("use/display additional information from merge\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"history")},
{"accept", opt_accept, 1,
N_("specify automatic conflict resolution action\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"('postpone', 'base', 'mine-conflict',\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"'theirs-conflict', 'mine-full', 'theirs-full',\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"'edit', 'launch')")},
{"show-revs", opt_show_revs, 1,
N_("specify which collection of revisions to display\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"('merged', 'eligible')")},
{"reintegrate", opt_reintegrate, 0,
N_("merge a branch back into its parent branch")},
{"strip", opt_strip, 1,
N_("number of leading path components to strip from\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"paths parsed from the patch file. --strip 0\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"is the default and leaves paths unmodified.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"--strip 1 would change the path\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"'doc/fudge/crunchy.html' to 'fudge/crunchy.html'.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"--strip 2 would leave just 'crunchy.html'\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"The expected component separator is '/' on all\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"platforms. A leading '/' counts as one component.")},
{"show-copies-as-adds", opt_show_copies_as_adds, 0,
N_("don't diff copied or moved files with their source")},
@@ -335,9 +334,9 @@ const apr_getopt_option_t svn_cl__option
N_("use git's extended diff format")},
{"allow-mixed-revisions", opt_allow_mixed_revisions, 0,
N_("Allow merge into mixed-revision working copy.\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"Use of this option is not recommended!\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"Please run 'svn update' instead.")},
/* Long-opt Aliases
@@ -710,7 +709,6 @@ const svn_opt_subcommand_desc2_t svn_cl_
" U Updated\n"
" C Conflict\n"
" G Merged\n"
- " E Existed\n"
" R Replaced\n"
"\n"
" Characters in the first column report about the item itself.\n"
@@ -974,9 +972,9 @@ const svn_opt_subcommand_desc2_t svn_cl_
" Note: the --accept option is currently required.\n"),
{opt_targets, 'R', opt_depth, 'q', opt_accept},
{{opt_accept, N_("specify automatic conflict resolution source\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"('base', 'working', 'mine-conflict',\n"
- SVN_CL__OPTION_CONTINUATION_INDENT
+ " "
"'theirs-conflict', 'mine-full', 'theirs-full')")}} },
{ "resolved", svn_cl__resolved, {0}, N_
Modified: subversion/branches/performance/subversion/svn/merge-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/merge-cmd.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/merge-cmd.c (original)
+++ subversion/branches/performance/subversion/svn/merge-cmd.c Wed Feb 2 13:04:51 2011
@@ -238,24 +238,23 @@ svn_cl__merge(apr_getopt_t *os,
sourcepaths. */
if (sourcepath1 && sourcepath2 && strcmp(targetpath, "") == 0)
{
- /* If the sourcepath is a URL, it can only refer to a target in the
- current working directory.
- However, if the sourcepath is a local path, it can refer to a target
- somewhere deeper in the directory structure. */
+ /* If the sourcepath is a URL, it can only refer to a target in
+ the current working directory. However, if the sourcepath is
+ a local path, it can refer to a target somewhere deeper in
+ the directory structure. */
if (svn_path_is_url(sourcepath1))
{
- const char *sp1_basename, *sp2_basename;
- sp1_basename = svn_uri_basename(sourcepath1, pool);
- sp2_basename = svn_uri_basename(sourcepath2, pool);
+ const char *sp1_basename = svn_uri_basename(sourcepath1, pool);
+ const char *sp2_basename = svn_uri_basename(sourcepath2, pool);
if (strcmp(sp1_basename, sp2_basename) == 0)
{
svn_node_kind_t kind;
- const char *decoded_path = svn_path_uri_decode(sp1_basename, pool);
- SVN_ERR(svn_io_check_path(decoded_path, &kind, pool));
+
+ SVN_ERR(svn_io_check_path(sp1_basename, &kind, pool));
if (kind == svn_node_file)
{
- targetpath = decoded_path;
+ targetpath = sp1_basename;
}
}
}
Modified: subversion/branches/performance/subversion/svn/patch-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/patch-cmd.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/patch-cmd.c (original)
+++ subversion/branches/performance/subversion/svn/patch-cmd.c Wed Feb 2 13:04:51 2011
@@ -62,6 +62,9 @@ svn_cl__patch(apr_getopt_t *os,
ctx, pool));
SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, pool));
+ if (targets->nelts < 1)
+ return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);
+
if (targets->nelts > 2)
return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
Modified: subversion/branches/performance/subversion/svn/propset-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/propset-cmd.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/propset-cmd.c (original)
+++ subversion/branches/performance/subversion/svn/propset-cmd.c Wed Feb 2 13:04:51 2011
@@ -86,8 +86,8 @@ svn_cl__propset(apr_getopt_t *os,
and LF line endings. All other propvals are taken literally. */
if (svn_prop_needs_translation(pname_utf8))
SVN_ERR(svn_subst_translate_string2(&propval, NULL, NULL, propval,
- opt_state->encoding, scratch_pool,
- scratch_pool));
+ opt_state->encoding, FALSE,
+ scratch_pool, scratch_pool));
else if (opt_state->encoding)
return svn_error_create
(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
Modified: subversion/branches/performance/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svn/util.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svn/util.c (original)
+++ subversion/branches/performance/subversion/svn/util.c Wed Feb 2 13:04:51 2011
@@ -485,8 +485,8 @@ svn_cl__edit_string_externally(svn_strin
if (as_text)
{
err = svn_subst_translate_string2(edited_contents, FALSE, FALSE,
- *edited_contents, encoding, pool,
- pool);
+ *edited_contents, encoding, FALSE,
+ pool, pool);
if (err)
{
err = svn_error_quick_wrap
@@ -713,7 +713,7 @@ svn_cl__get_log_message(const char **log
log_msg_str->len = log_msg_buf->len;
SVN_ERR_W(svn_subst_translate_string2(&log_msg_str, FALSE, FALSE,
log_msg_str, lmb->message_encoding,
- pool, pool),
+ FALSE, pool, pool),
_("Error normalizing log message to internal format"));
*log_msg = log_msg_str->data;
@@ -1296,17 +1296,6 @@ svn_cl__node_description(const svn_wc_co
node->peg_rev);
}
-const char *
-svn_cl__path_join(const char *base,
- const char *component,
- apr_pool_t *pool)
-{
- if (svn_path_is_url(base))
- return svn_uri_join(base, component, pool);
- else
- return svn_dirent_join(base, component, pool);
-}
-
svn_error_t *
svn_cl__eat_peg_revisions(apr_array_header_t **true_targets_p,
const apr_array_header_t *targets,
Modified: subversion/branches/performance/subversion/svnadmin/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svnadmin/main.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svnadmin/main.c (original)
+++ subversion/branches/performance/subversion/svnadmin/main.c Wed Feb 2 13:04:51 2011
@@ -1197,7 +1197,7 @@ set_revprop(const char *prop_name, const
prop_value->len = file_contents->len;
SVN_ERR(svn_subst_translate_string2(&prop_value, NULL, NULL, prop_value,
- NULL, pool, pool));
+ NULL, FALSE, pool, pool));
/* Open the filesystem */
SVN_ERR(open_repos(&repos, opt_state->repository_path, pool));
Modified: subversion/branches/performance/subversion/svnlook/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svnlook/main.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svnlook/main.c (original)
+++ subversion/branches/performance/subversion/svnlook/main.c Wed Feb 2 13:04:51 2011
@@ -52,6 +52,7 @@
#include "svn_xml.h"
#include "private/svn_cmdline_private.h"
+#include "private/svn_fspath.h"
#include "svn_private_config.h"
Modified: subversion/branches/performance/subversion/svnrdump/dump_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svnrdump/dump_editor.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svnrdump/dump_editor.c (original)
+++ subversion/branches/performance/subversion/svnrdump/dump_editor.c Wed Feb 2 13:04:51 2011
@@ -30,6 +30,8 @@
#include "svn_subst.h"
#include "svn_dirent_uri.h"
+#include "private/svn_fspath.h"
+
#include "dump_editor.h"
#define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r))
@@ -132,19 +134,18 @@ make_dir_baton(const char *path,
const char *abspath;
/* Construct the full path of this node. */
+ /* ### FIXME: Not sure why we use an abspath here. If I understand
+ ### correctly, the only place we used this path is in dump_node(),
+ ### which immediately converts it into a relpath. -- cmpilato. */
if (pb)
- {
- if (path[0] != '/')
- abspath = apr_pstrcat(pool, "/", path, (char *)NULL);
- }
+ abspath = svn_fspath__canonicalize(path, pool);
else
abspath = "/";
/* Strip leading slash from copyfrom_path so that the path is
canonical and svn_relpath_join can be used */
if (copyfrom_path)
- copyfrom_path = ((*copyfrom_path == '/') ?
- copyfrom_path + 1 : copyfrom_path);
+ copyfrom_path = svn_relpath_canonicalize(copyfrom_path, pool);
new_db->eb = eb;
new_db->parent_dir_baton = pb;
@@ -252,11 +253,10 @@ dump_node(struct dump_edit_baton *eb,
{
/* Remove leading slashes from path and copyfrom_path */
if (path)
- path = ((*path == '/') ? path + 1 : path);
+ path = svn_relpath_canonicalize(path, pool);
if (copyfrom_path)
- copyfrom_path = ((*copyfrom_path == '/') ?
- copyfrom_path + 1 : copyfrom_path);
+ copyfrom_path = svn_relpath_canonicalize(copyfrom_path, pool);
/* Node-path: commons/STATUS */
SVN_ERR(svn_stream_printf(eb->stream, pool,
@@ -484,9 +484,9 @@ open_directory(const char *path,
record the same for this one. */
if (pb && ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
{
- copyfrom_path = svn_uri_join(pb->copyfrom_path,
- svn_relpath_basename(path, NULL),
- pb->eb->pool);
+ copyfrom_path = svn_relpath_join(pb->copyfrom_path,
+ svn_relpath_basename(path, NULL),
+ pb->eb->pool);
copyfrom_rev = pb->copyfrom_rev;
}
Modified: subversion/branches/performance/subversion/svnrdump/dump_editor.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svnrdump/dump_editor.h?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svnrdump/dump_editor.h (original)
+++ subversion/branches/performance/subversion/svnrdump/dump_editor.h Wed Feb 2 13:04:51 2011
@@ -44,10 +44,10 @@ struct dir_baton
svn_boolean_t written_out;
/* the absolute path to this directory */
- const char *abspath;
+ const char *abspath; /* an fspath */
- /* Copyfrom info for the node, if any */
- const char *copyfrom_path;
+ /* Copyfrom info for the node, if any. */
+ const char *copyfrom_path; /* a relpath */
svn_revnum_t copyfrom_rev;
/* Hash of paths that need to be deleted, though some -might- be
Modified: subversion/branches/performance/subversion/svnrdump/load_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svnrdump/load_editor.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svnrdump/load_editor.c (original)
+++ subversion/branches/performance/subversion/svnrdump/load_editor.c Wed Feb 2 13:04:51 2011
@@ -106,9 +106,9 @@ get_lock(const svn_string_t **lock_strin
static svn_error_t *
new_revision_record(void **revision_baton,
- apr_hash_t *headers,
- void *parse_baton,
- apr_pool_t *pool)
+ apr_hash_t *headers,
+ void *parse_baton,
+ apr_pool_t *pool)
{
struct revision_baton *rb;
struct parse_baton *pb;
@@ -312,6 +312,15 @@ new_node_record(void **node_baton,
switch (nb->action)
{
+ case svn_node_action_delete:
+ case svn_node_action_replace:
+ LDR_DBG(("Deleting entry %s in %p\n", nb->path, rb->db->baton));
+ SVN_ERR(commit_editor->delete_entry(nb->path, rb->rev,
+ rb->db->baton, rb->pool));
+ if (nb->action == svn_node_action_delete)
+ break;
+ else
+ /* FALL THROUGH */;
case svn_node_action_add:
switch (nb->kind)
{
@@ -354,14 +363,6 @@ new_node_record(void **node_baton,
break;
}
break;
- case svn_node_action_delete:
- LDR_DBG(("Deleting entry %s in %p\n", nb->path, rb->db->baton));
- SVN_ERR(commit_editor->delete_entry(nb->path, rb->rev,
- rb->db->baton, rb->pool));
- break;
- case svn_node_action_replace:
- /* Absent in dumpstream; represented as a delete + add */
- break;
}
*node_baton = nb;
Modified: subversion/branches/performance/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/svnserve/serve.c?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/svnserve/serve.c (original)
+++ subversion/branches/performance/subversion/svnserve/serve.c Wed Feb 2 13:04:51 2011
@@ -52,6 +52,7 @@
#include "private/svn_log.h"
#include "private/svn_mergeinfo_private.h"
+#include "private/svn_fspath.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h> /* For getpid() */
@@ -396,8 +397,8 @@ static svn_error_t *authz_check_access(s
absolute path. Passing such a malformed path to the authz
routines throws them into an infinite loop and makes them miss
ACLs. */
- if (path && *path != '/')
- path = svn_uri_join("/", path, pool);
+ if (path)
+ path = svn_fspath__canonicalize(path, pool);
/* If we have a username, and we've not yet used it + any username
case normalization that might be requested to determine "the
@@ -764,7 +765,7 @@ static svn_error_t *set_path(svn_ra_svn_
&depth_word));
if (depth_word)
depth = svn_depth_from_word(depth_word);
- path = svn_uri_canonicalize(path, pool);
+ path = svn_relpath_canonicalize(path, pool);
if (b->from_rev && strcmp(path, "") == 0)
*b->from_rev = rev;
if (!b->err)
@@ -783,7 +784,7 @@ static svn_error_t *delete_path(svn_ra_s
const char *path;
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c", &path));
- path = svn_uri_canonicalize(path, pool);
+ path = svn_relpath_canonicalize(path, pool);
if (!b->err)
b->err = svn_repos_delete_path(b->report_baton, path, pool);
return SVN_NO_ERROR;
@@ -802,13 +803,17 @@ static svn_error_t *link_path(svn_ra_svn
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "ccrb?(?c)?w",
&path, &url, &rev, &start_empty,
&lock_token, &depth_word));
- path = svn_uri_canonicalize(path, pool);
- url = svn_path_uri_decode(svn_uri_canonicalize(url, pool), pool);
+
+ /* ### WHAT?! The link path is an absolute URL?! Didn't see that
+ coming... -- cmpilato */
+ path = svn_relpath_canonicalize(path, pool);
+ url = svn_uri_canonicalize(url, pool);
if (depth_word)
depth = svn_depth_from_word(depth_word);
if (!b->err)
b->err = get_fs_path(svn_path_uri_decode(b->repos_url, pool),
- url, &fs_path);
+ svn_path_uri_decode(url, pool),
+ &fs_path);
if (!b->err)
b->err = svn_repos_link_path3(b->report_baton, path, fs_path, rev,
depth, start_empty, lock_token, pool);
@@ -994,10 +999,11 @@ static svn_error_t *reparent(svn_ra_svn_
const char *fs_path;
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c", &url));
- url = svn_path_uri_decode(svn_uri_canonicalize(url, pool), pool);
+ url = svn_uri_canonicalize(url, pool);
SVN_ERR(trivial_auth_request(conn, pool, b));
SVN_CMD_ERR(get_fs_path(svn_path_uri_decode(b->repos_url, pool),
- url, &fs_path));
+ svn_path_uri_decode(url, pool),
+ &fs_path));
SVN_ERR(log_command(b, conn, pool, "%s", svn_log__reparent(fs_path, pool)));
svn_stringbuf_set(b->fs_path, fs_path);
SVN_ERR(svn_ra_svn_write_cmd_response(conn, pool, ""));
@@ -1209,9 +1215,9 @@ static svn_error_t *add_lock_tokens(svn_
"Lock token isn't a string");
path = path_item->u.string->data;
- full_path = svn_uri_join(sb->fs_path->data,
- svn_uri_canonicalize(path, pool),
- pool);
+ full_path = svn_fspath__join(sb->fs_path->data,
+ svn_relpath_canonicalize(path, pool),
+ pool);
if (! lookup_access(pool, sb, conn, svn_authz_write,
full_path, TRUE))
@@ -1251,9 +1257,9 @@ static svn_error_t *unlock_paths(const a
path = path_item->u.string->data;
token = token_item->u.string->data;
- full_path = svn_uri_join(sb->fs_path->data,
- svn_uri_canonicalize(path, iterpool),
- iterpool);
+ full_path = svn_fspath__join(sb->fs_path->data,
+ svn_relpath_canonicalize(path, iterpool),
+ iterpool);
/* The lock may have become defunct after the commit, so ignore such
errors. */
@@ -1392,8 +1398,8 @@ static svn_error_t *get_file(svn_ra_svn_
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c(?r)bb", &path, &rev,
&want_props, &want_contents));
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -1509,8 +1515,8 @@ static svn_error_t *get_dir(svn_ra_svn_c
}
}
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -1547,7 +1553,7 @@ static svn_error_t *get_dir(svn_ra_svn_c
svn_pool_clear(subpool);
- file_path = svn_uri_join(full_path, name, subpool);
+ file_path = svn_fspath__join(full_path, name, subpool);
if (! lookup_access(subpool, b, conn, svn_authz_read,
file_path, FALSE))
@@ -1647,7 +1653,7 @@ static svn_error_t *update(svn_ra_svn_co
/* Parse the arguments. */
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "(?r)cb?wB", &rev, &target,
&recurse, &depth_word, &send_copyfrom_param));
- target = svn_uri_canonicalize(target, pool);
+ target = svn_relpath_canonicalize(target, pool);
if (depth_word)
depth = svn_depth_from_word(depth_word);
@@ -1657,7 +1663,7 @@ static svn_error_t *update(svn_ra_svn_co
send_copyfrom_args = (send_copyfrom_param == SVN_RA_SVN_UNSPECIFIED_NUMBER) ?
FALSE : (svn_boolean_t) send_copyfrom_param;
- full_path = svn_uri_join(b->fs_path->data, target, pool);
+ full_path = svn_fspath__join(b->fs_path->data, target, pool);
/* Check authorization and authenticate the user if necessary. */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read, full_path, FALSE));
@@ -1698,7 +1704,7 @@ static svn_error_t *switch_cmd(svn_ra_sv
/* Parse the arguments. */
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "(?r)cbc?w", &rev, &target,
&recurse, &switch_url, &depth_word));
- target = svn_uri_canonicalize(target, pool);
+ target = svn_relpath_canonicalize(target, pool);
switch_url = svn_uri_canonicalize(switch_url, pool);
if (depth_word)
@@ -1715,7 +1721,7 @@ static svn_error_t *switch_cmd(svn_ra_sv
&switch_path));
{
- const char *full_path = svn_uri_join(b->fs_path->data, target, pool);
+ const char *full_path = svn_fspath__join(b->fs_path->data, target, pool);
SVN_ERR(log_command(b, conn, pool, "%s",
svn_log__switch(full_path, switch_path, rev,
depth, pool)));
@@ -1742,7 +1748,7 @@ static svn_error_t *status(svn_ra_svn_co
/* Parse the arguments. */
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "cb?(?r)?w",
&target, &recurse, &rev, &depth_word));
- target = svn_uri_canonicalize(target, pool);
+ target = svn_relpath_canonicalize(target, pool);
if (depth_word)
depth = svn_depth_from_word(depth_word);
@@ -1754,7 +1760,7 @@ static svn_error_t *status(svn_ra_svn_co
SVN_CMD_ERR(svn_fs_youngest_rev(&rev, b->fs, pool));
{
- const char *full_path = svn_uri_join(b->fs_path->data, target, pool);
+ const char *full_path = svn_fspath__join(b->fs_path->data, target, pool);
SVN_ERR(log_command(b, conn, pool, "%s",
svn_log__status(full_path, rev, depth, pool)));
}
@@ -1791,7 +1797,7 @@ static svn_error_t *diff(svn_ra_svn_conn
&ignore_ancestry, &versus_url,
&text_deltas, &depth_word));
}
- target = svn_uri_canonicalize(target, pool);
+ target = svn_relpath_canonicalize(target, pool);
versus_url = svn_uri_canonicalize(versus_url, pool);
if (depth_word)
@@ -1808,7 +1814,7 @@ static svn_error_t *diff(svn_ra_svn_conn
&versus_path));
{
- const char *full_path = svn_uri_join(b->fs_path->data, target, pool);
+ const char *full_path = svn_fspath__join(b->fs_path->data, target, pool);
svn_revnum_t from_rev;
SVN_ERR(accept_report(NULL, &from_rev,
conn, pool, b, rev, target, versus_path,
@@ -1858,10 +1864,8 @@ static svn_error_t *get_mergeinfo(svn_ra
if (item->kind != SVN_RA_SVN_STRING)
return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
_("Path is not a string"));
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(item->u.string->data,
- pool),
- pool);
+ full_path = svn_relpath_canonicalize(item->u.string->data, pool);
+ full_path = svn_fspath__join(b->fs_path->data, full_path, pool);
APR_ARRAY_PUSH(canonical_paths, const char *) = full_path;
}
@@ -2004,18 +2008,17 @@ static svn_error_t *log_cmd(svn_ra_svn_c
revprops = NULL;
else if (strcmp(revprop_word, "revprops") == 0)
{
+ SVN_ERR_ASSERT(revprop_items);
+
revprops = apr_array_make(pool, revprop_items->nelts,
sizeof(char *));
- if (revprop_items)
+ for (i = 0; i < revprop_items->nelts; i++)
{
- for (i = 0; i < revprop_items->nelts; i++)
- {
- elt = &APR_ARRAY_IDX(revprop_items, i, svn_ra_svn_item_t);
- if (elt->kind != SVN_RA_SVN_STRING)
- return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
- _("Log revprop entry not a string"));
- APR_ARRAY_PUSH(revprops, const char *) = elt->u.string->data;
- }
+ elt = &APR_ARRAY_IDX(revprop_items, i, svn_ra_svn_item_t);
+ if (elt->kind != SVN_RA_SVN_STRING)
+ return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
+ _("Log revprop entry not a string"));
+ APR_ARRAY_PUSH(revprops, const char *) = elt->u.string->data;
}
}
else
@@ -2037,10 +2040,8 @@ static svn_error_t *log_cmd(svn_ra_svn_c
if (elt->kind != SVN_RA_SVN_STRING)
return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
_("Log path entry not a string"));
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(elt->u.string->data,
- pool),
- pool);
+ full_path = svn_relpath_canonicalize(elt->u.string->data, pool),
+ full_path = svn_fspath__join(b->fs_path->data, full_path, pool);
APR_ARRAY_PUSH(full_paths, const char *) = full_path;
}
SVN_ERR(trivial_auth_request(conn, pool, b));
@@ -2082,8 +2083,8 @@ static svn_error_t *check_path(svn_ra_sv
svn_node_kind_t kind;
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c(?r)", &path, &rev));
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -2112,8 +2113,8 @@ static svn_error_t *stat_cmd(svn_ra_svn_
svn_dirent_t *dirent;
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c(?r)", &path, &rev));
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -2167,9 +2168,9 @@ static svn_error_t *get_locations(svn_ra
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "crl", &relative_path,
&peg_revision,
&loc_revs_proto));
- relative_path = svn_uri_canonicalize(relative_path, pool);
+ relative_path = svn_relpath_canonicalize(relative_path, pool);
- abs_path = svn_uri_join(b->fs_path->data, relative_path, pool);
+ abs_path = svn_fspath__join(b->fs_path->data, relative_path, pool);
location_revisions = apr_array_make(pool, loc_revs_proto->nelts,
sizeof(svn_revnum_t));
@@ -2256,9 +2257,9 @@ static svn_error_t *get_location_segment
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c(?r)(?r)(?r)",
&relative_path, &peg_revision,
&start_rev, &end_rev));
- relative_path = svn_uri_canonicalize(relative_path, pool);
+ relative_path = svn_relpath_canonicalize(relative_path, pool);
- abs_path = svn_uri_join(b->fs_path->data, relative_path, pool);
+ abs_path = svn_fspath__join(b->fs_path->data, relative_path, pool);
if (SVN_IS_VALID_REVNUM(start_rev)
&& SVN_IS_VALID_REVNUM(end_rev)
@@ -2394,9 +2395,9 @@ static svn_error_t *get_file_revs(svn_ra
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c(?r)(?r)?B",
&path, &start_rev, &end_rev,
&include_merged_revs_param));
- path = svn_uri_canonicalize(path, pool);
+ path = svn_relpath_canonicalize(path, pool);
SVN_ERR(trivial_auth_request(conn, pool, b));
- full_path = svn_uri_join(b->fs_path->data, path, pool);
+ full_path = svn_fspath__join(b->fs_path->data, path, pool);
if (include_merged_revs_param == SVN_RA_SVN_UNSPECIFIED_NUMBER)
include_merged_revisions = FALSE;
@@ -2440,8 +2441,8 @@ static svn_error_t *lock(svn_ra_svn_conn
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c(?c)b(?r)", &path, &comment,
&steal_lock, ¤t_rev));
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
SVN_ERR(must_have_access(conn, pool, b, svn_authz_write,
full_path, TRUE));
@@ -2504,9 +2505,9 @@ static svn_error_t *lock_many(svn_ra_svn
/* Allocate the full_path out of pool so it will survive for use
* by operational logging, after this loop. */
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, subpool),
- pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, subpool),
+ pool);
APR_ARRAY_PUSH(log_paths, const char *) = full_path;
if (! lookup_access(pool, b, conn, svn_authz_write, full_path, TRUE))
@@ -2568,8 +2569,8 @@ static svn_error_t *unlock(svn_ra_svn_co
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c(?c)b", &path, &token,
&break_lock));
- full_path = svn_uri_join(b->fs_path->data, svn_uri_canonicalize(path, pool),
- pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
/* Username required unless break_lock was specified. */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_write,
@@ -2625,9 +2626,9 @@ static svn_error_t *unlock_many(svn_ra_s
/* Allocate the full_path out of pool so it will survive for use
* by operational logging, after this loop. */
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, subpool),
- pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, subpool),
+ pool);
APR_ARRAY_PUSH(log_paths, const char *) = full_path;
if (! lookup_access(subpool, b, conn, svn_authz_write, full_path,
@@ -2682,9 +2683,8 @@ static svn_error_t *get_lock(svn_ra_svn_
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "c", &path));
- full_path = svn_uri_join(b->fs_path->data, svn_uri_canonicalize(path,
- pool),
- pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
full_path, FALSE));
@@ -2726,8 +2726,8 @@ static svn_error_t *get_locks(svn_ra_svn
return log_fail_and_flush(err, b, conn, pool);
}
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
SVN_ERR(trivial_auth_request(conn, pool, b));
@@ -2854,8 +2854,8 @@ get_deleted_rev(svn_ra_svn_conn_t *conn,
SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "crr",
&path, &peg_revision, &end_revision));
- full_path = svn_uri_join(b->fs_path->data,
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_fspath__join(b->fs_path->data,
+ svn_relpath_canonicalize(path, pool), pool);
SVN_ERR(log_command(b, conn, pool, "get-deleted-rev"));
SVN_ERR(trivial_auth_request(conn, pool, b));
SVN_ERR(svn_repos_deleted_rev(b->fs, full_path, peg_revision, end_revision,
@@ -2970,23 +2970,21 @@ static svn_error_t *find_repos(const cha
if (path == NULL)
return svn_error_createf(SVN_ERR_BAD_URL, NULL,
"Non-svn URL passed to svn server: '%s'", url);
- path = strchr(path, '/');
- path = (path == NULL) ? "" : path + 1;
- /* Decode URI escapes from the path. */
+
+ path = strchr(path, '/');
+ path = (path == NULL) ? "" : svn_relpath_canonicalize(path, pool);
path = svn_path_uri_decode(path, pool);
- /* Ensure that it isn't possible to escape the root by skipping leading
- slashes and not allowing '..' segments. */
- while (*path == '/')
- ++path;
+ /* Ensure that it isn't possible to escape the root by disallowing
+ '..' segments. */
if (!repos_path_valid(path))
return svn_error_create(SVN_ERR_BAD_FILENAME, NULL,
"Couldn't determine repository path");
/* Join the server-configured root with the client path. */
- full_path = svn_uri_join(svn_uri_canonicalize(root, pool),
- svn_uri_canonicalize(path, pool), pool);
+ full_path = svn_dirent_join(svn_dirent_canonicalize(root, pool),
+ path, pool);
/* Search for a repository in the full path. */
repos_root = svn_repos_find_root_path(full_path, pool);
@@ -3004,9 +3002,9 @@ static svn_error_t *find_repos(const cha
svn_path_remove_components(url_buf,
svn_path_component_count(b->fs_path->data));
b->repos_url = url_buf->data;
- b->authz_repos_name = svn_uri_is_child(root, repos_root, pool);
+ b->authz_repos_name = svn_dirent_is_child(root, repos_root, pool);
if (b->authz_repos_name == NULL)
- b->repos_name = svn_uri_basename(repos_root, pool);
+ b->repos_name = svn_dirent_basename(repos_root, pool);
else
b->repos_name = b->authz_repos_name;
b->repos_name = svn_path_uri_encode(b->repos_name, pool);
Modified: subversion/branches/performance/subversion/tests/cmdline/authz_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/authz_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/authz_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/authz_tests.py Wed Feb 2 13:04:51 2011
@@ -160,7 +160,7 @@ def authz_read_access(sbox):
if sbox.repo_url.startswith("http"):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Authorization failed.*"
+ expected_err = ".*svn: E170001: Authorization failed.*"
# create some folders with spaces in their names
svntest.actions.run_and_verify_svn(None, None, [],
@@ -284,7 +284,7 @@ def authz_write_access(sbox):
if sbox.repo_url.startswith('http'):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Access denied.*"
+ expected_err = ".*svn: E220004: Access denied.*"
write_authz_file(sbox, { "/": "* = r",
"/A/B": "* = rw",
@@ -379,7 +379,7 @@ def authz_checkout_test(sbox):
if sbox.repo_url.startswith('http'):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Authorization failed.*"
+ expected_err = ".*svn: E170001: Authorization failed.*"
write_authz_file(sbox, { "/": "* ="})
@@ -513,7 +513,7 @@ def authz_log_and_tracing_test(sbox):
if sbox.repo_url.startswith('http'):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Authorization failed.*"
+ expected_err = ".*svn: E170001: Authorization failed.*"
write_authz_file(sbox, { "/": "* = rw\n" })
@@ -544,7 +544,7 @@ def authz_log_and_tracing_test(sbox):
if sbox.repo_url.startswith('http'):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Authorization failed.*"
+ expected_err = ".*svn: E170001: Authorization failed.*"
authz = { "/": "* = rw",
"/A/D/G": "* ="}
@@ -563,7 +563,7 @@ def authz_log_and_tracing_test(sbox):
if sbox.repo_url.startswith('http'):
expected_err2 = expected_err
else:
- expected_err2 = ".*svn: Item is not readable.*"
+ expected_err2 = ".*svn: E220001: Item is not readable.*"
# if we do the same thing directly on the unreadable file, we get:
# svn: Item is not readable
@@ -602,7 +602,7 @@ def authz_log_and_tracing_test(sbox):
if sbox.repo_url.startswith('http'):
expected_err2 = expected_err
else:
- expected_err2 = ".*svn: Unreadable path encountered; access denied.*"
+ expected_err2 = ".*svn: E220001: Unreadable path encountered; access denied.*"
svntest.actions.run_and_verify_svn(None, None, expected_err2,
'cat', '-r', '2', G_url+'/rho')
@@ -630,7 +630,7 @@ def authz_aliases(sbox):
if sbox.repo_url.startswith("http"):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Authorization failed.*"
+ expected_err = ".*svn: E170001: Authorization failed.*"
write_authz_file(sbox, { "/" : "* = r",
"/A/B" : "&jray = rw" },
@@ -733,7 +733,7 @@ def authz_locking(sbox):
if sbox.repo_url.startswith('http'):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Authorization failed.*"
+ expected_err = ".*svn: E170001: Authorization failed.*"
root_url = sbox.repo_url
wc_dir = sbox.wc_dir
@@ -950,7 +950,7 @@ def multiple_matches(sbox):
if sbox.repo_url.startswith("http"):
expected_err = ".*[Ff]orbidden.*"
else:
- expected_err = ".*svn: Authorization failed.*"
+ expected_err = ".*svn: E170001: Authorization failed.*"
# Prohibit access and commit fails
write_authz_file(sbox, {'/': 'jrandom ='})
@@ -1000,7 +1000,7 @@ def wc_wc_copy(sbox):
svntest.actions.run_and_verify_status(sbox.wc_dir, expected_status)
svntest.actions.run_and_verify_svn(None, None,
- 'svn: Cannot copy.*excluded by server',
+ 'svn: E220001: Cannot copy.*excluded by server',
'cp', sbox.ospath('A'), sbox.ospath('A2'))
Modified: subversion/branches/performance/subversion/tests/cmdline/autoprop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/autoprop_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/autoprop_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/autoprop_tests.py Wed Feb 2 13:04:51 2011
@@ -307,9 +307,9 @@ def fail_add_mixed_eol_style(sbox):
svntest.main.file_write(filepath, 'foo\nbar\r\nbaz\r')
- expected_stderr = "svn: File '.*/" + filename + \
+ expected_stderr = "svn: E200009: File '.*" + filename + \
"' has inconsistent newlines" + \
- "|" + "svn: Inconsistent line ending style\n"
+ "|" + "svn: E135000: Inconsistent line ending style\n"
run_and_verify_svn(None, [], expected_stderr,
'add', filepath, *parameters)
Modified: subversion/branches/performance/subversion/tests/cmdline/basic_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/basic_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/basic_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/basic_tests.py Wed Feb 2 13:04:51 2011
@@ -397,7 +397,8 @@ def basic_corruption(sbox):
# This commit should fail due to text base corruption.
svntest.actions.run_and_verify_commit(wc_dir, expected_output,
- expected_status, "svn: Checksum",
+ expected_status,
+ "svn: E155017: Checksum",
wc_dir)
# Restore the uncorrupted text base.
@@ -446,7 +447,7 @@ def basic_corruption(sbox):
expected_output,
expected_disk,
expected_status,
- "svn: Checksum", other_wc)
+ "svn: E155017: Checksum", other_wc)
# Restore the uncorrupted text base.
os.chmod(tb_dir_path, 0777)
@@ -2484,7 +2485,7 @@ def basic_mkdir_mix_targets(sbox):
sbox.build()
Y_url = sbox.repo_url + '/Y'
- expected_error = "svn: Cannot mix repository and working copy targets"
+ expected_error = "svn: E200009: Cannot mix repository and working copy targets"
svntest.actions.run_and_verify_svn(None, None, expected_error,
'mkdir', '-m', 'log_msg', Y_url, 'subdir')
Modified: subversion/branches/performance/subversion/tests/cmdline/cat_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/cat_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/cat_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/cat_tests.py Wed Feb 2 13:04:51 2011
@@ -113,12 +113,12 @@ def cat_skip_uncattable(sbox):
continue
item_to_cat = os.path.join(dir_path, file)
if item_to_cat == new_file_path:
- expected_err = ["svn: warning: '" + os.path.abspath(item_to_cat) + "'" + \
+ expected_err = ["svn: warning: W200005: '" + os.path.abspath(item_to_cat) + "'" + \
" is not under version control\n"]
svntest.actions.run_and_verify_svn2(None, None, expected_err, 0,
'cat', item_to_cat)
elif os.path.isdir(item_to_cat):
- expected_err = ["svn: warning: '" + os.path.abspath(item_to_cat) + "'" + \
+ expected_err = ["svn: warning: W195007: '" + os.path.abspath(item_to_cat) + "'" + \
" refers to a directory\n"]
svntest.actions.run_and_verify_svn2(None, None, expected_err, 0,
'cat', item_to_cat)
@@ -131,12 +131,12 @@ def cat_skip_uncattable(sbox):
rho_path = os.path.join(G_path, 'rho')
expected_out = ["This is the file 'rho'.\n"]
- expected_err1 = ["svn: warning: '" + os.path.abspath(G_path) + "'"
+ expected_err1 = ["svn: warning: W195007: '" + os.path.abspath(G_path) + "'"
+ " refers to a directory\n"]
svntest.actions.run_and_verify_svn2(None, expected_out, expected_err1, 0,
'cat', rho_path, G_path)
- expected_err2 = ["svn: warning: '" + os.path.abspath(new_file_path) + "'"
+ expected_err2 = ["svn: warning: W200005: '" + os.path.abspath(new_file_path) + "'"
+ " is not under version control\n"]
svntest.actions.run_and_verify_svn2(None, expected_out, expected_err2, 0,
'cat', rho_path, new_file_path)
@@ -162,7 +162,7 @@ def cat_unversioned_file(sbox):
iota_path)
# Now try to cat the deleted file, it should be reported as unversioned.
- expected_error = ["svn: warning: '" + os.path.abspath(iota_path) + "'"
+ expected_error = ["svn: warning: W200005: '" + os.path.abspath(iota_path) + "'"
+ " is not under version control\n"]
svntest.actions.run_and_verify_svn2(None, [], expected_error, 0,
'cat', iota_path)
@@ -204,7 +204,7 @@ def cat_url_special_characters(sbox):
special_urls = [sbox.repo_url + '/A' + '/%2E',
sbox.repo_url + '%2F' + 'A']
- expected_err = ["svn: warning: URL '" + sbox.repo_url + '/A' + "'"
+ expected_err = ["svn: warning: W195007: URL '" + sbox.repo_url + '/A' + "'"
+ " refers to a directory\n"]
for url in special_urls:
Modified: subversion/branches/performance/subversion/tests/cmdline/changelist_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/changelist_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/changelist_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/changelist_tests.py Wed Feb 2 13:04:51 2011
@@ -871,7 +871,7 @@ def tree_conflicts_and_changelists_on_co
# item.
svntest.main.run_svn(None, "changelist", "list", iota, rho)
- expected_error = ("svn: Aborting commit: '.*" + re.escape(rho)
+ expected_error = ("svn: E155015: Aborting commit: '.*" + re.escape(rho)
+ "' remains in .*conflict")
svntest.actions.run_and_verify_commit(wc_dir,
@@ -960,7 +960,7 @@ def tree_conflicts_and_changelists_on_co
svntest.actions.run_and_verify_status(wc_dir, expected_status)
# Verify that the current situation does not commit.
- expected_error = "svn: Aborting commit:.* remains in .*conflict";
+ expected_error = "svn: E155015: Aborting commit:.* remains in .*conflict";
svntest.actions.run_and_verify_commit(wc_dir,
None, None,
@@ -1043,7 +1043,7 @@ def tree_conflicts_and_changelists_on_co
svntest.actions.run_and_verify_status(wc_dir, expected_status)
# Verify that the current situation does not commit.
- expected_error = "svn: Aborting commit:.* remains in .*conflict";
+ expected_error = "svn: E155015: Aborting commit:.* remains in .*conflict";
svntest.actions.run_and_verify_commit(wc_dir,
None, None,
Modified: subversion/branches/performance/subversion/tests/cmdline/commit_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/commit_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/commit_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/commit_tests.py Wed Feb 2 13:04:51 2011
@@ -1273,7 +1273,8 @@ def commit_with_lock(sbox):
svntest.actions.run_and_verify_commit(wc_dir,
None,
None,
- 'svn: Working copy \'.*\' locked',
+ 'svn: E155004: '
+ 'Working copy \'.*\' locked',
wc_dir)
# unlock directory
@@ -2445,7 +2446,8 @@ def set_invalid_revprops(sbox):
# Empty revprop pair.
svntest.actions.run_and_verify_svn(None, [],
- 'svn: Revision property pair is empty',
+ 'svn: E205000: '
+ 'Revision property pair is empty',
'mkdir', '-m', 'msg',
'--with-revprop', '',
remote_dir)
@@ -2482,7 +2484,7 @@ def start_commit_hook_test(sbox):
# contain source code file and line numbers.
if len(actual_stderr) > 2:
actual_stderr = actual_stderr[-2:]
- expected_stderr = [ "svn: " +
+ expected_stderr = [ "svn: E165001: " +
svntest.actions.hook_failure_message('start-commit'),
error_msg + "\n",
]
@@ -2522,7 +2524,7 @@ def pre_commit_hook_test(sbox):
# contain source code file and line numbers.
if len(actual_stderr) > 2:
actual_stderr = actual_stderr[-2:]
- expected_stderr = [ "svn: " +
+ expected_stderr = [ "svn: E165001: " +
svntest.actions.hook_failure_message('pre-commit'),
error_msg + "\n",
]
@@ -2676,7 +2678,7 @@ def commit_url(sbox):
url = sbox.repo_url
# Commit directly to a URL
- expected_error = ("svn: '" + url +
+ expected_error = ("svn: E205000: '" + url +
"' is a URL, but URLs cannot be commit targets")
svntest.actions.run_and_verify_commit(None,
None,
Modified: subversion/branches/performance/subversion/tests/cmdline/davautocheck.sh
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/davautocheck.sh?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/davautocheck.sh (original)
+++ subversion/branches/performance/subversion/tests/cmdline/davautocheck.sh Wed Feb 2 13:04:51 2011
@@ -190,7 +190,7 @@ $LDD "$CLIENT_CMD" | grep -q 'not found'
|| fail "Subversion client couldn't find and/or load ra_dav library"
httpd="$($APXS -q PROGNAME)"
-HTTPD=$(get_prog_name $httpd) || fail "HTTPD not found"
+HTTPD=$(get_prog_name $httpd) || fail "HTTPD '$HTTPD' not found"
[ -x $HTTPD ] || fail "HTTPD '$HTTPD' not executable"
"$HTTPD" -v 1>/dev/null 2>&1 \
Modified: subversion/branches/performance/subversion/tests/cmdline/depth_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/depth_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/depth_tests.py Wed Feb 2 13:04:51 2011
@@ -2334,7 +2334,7 @@ def exclude_keeps_hidden_entries(sbox):
svntest.main.run_svn(None, 'up', '--set-depth', 'exclude', 'D')
# we could grep the 'entries' file, but...
# or we could use 'info', but info_excluded() is XFail.
- expected_stderr = ".*svn: '.*C' is already under version control.*"
+ expected_stderr = ".*svn: E150002: '.*C' is already under version control.*"
svntest.actions.run_and_verify_svn(None, None, expected_stderr,
'mkdir', 'C')
Modified: subversion/branches/performance/subversion/tests/cmdline/diff_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/diff_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/diff_tests.py Wed Feb 2 13:04:51 2011
@@ -1235,7 +1235,7 @@ def diff_targets(sbox):
update_path,
add_path)
- regex = 'svn: Unable to find repository location for \'.*\''
+ regex = 'svn: E195012: Unable to find repository location for \'.*\''
for line in err_output:
if re.match(regex, line):
break
@@ -1254,7 +1254,7 @@ def diff_targets(sbox):
exit_code, diff_output, err_output = svntest.main.run_svn(
1, 'diff', '-r1:2', '--old', parent_path, 'alpha', 'theta')
- regex = 'svn: \'.*\' was not found in the repository'
+ regex = 'svn: E160013: \'.*\' was not found in the repository'
for line in err_output:
if re.match(regex, line):
break
@@ -3240,7 +3240,7 @@ def diff_wrong_extension_type(sbox):
"'svn diff -x wc -r#' should return error"
sbox.build(read_only = True)
- expected_error = "(.*svn: Invalid argument .* in diff options.*)|" \
+ expected_error = "(.*svn: E200016: Invalid argument .* in diff options.*)|" \
"(svn: '.' is not a working copy)"
svntest.actions.run_and_verify_svn(None, [], expected_error,
'diff', '-x', sbox.wc_dir, '-r', '1')
Modified: subversion/branches/performance/subversion/tests/cmdline/input_validation_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/input_validation_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/input_validation_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/input_validation_tests.py Wed Feb 2 13:04:51 2011
@@ -87,14 +87,14 @@ def invalid_wcpath_commit(sbox):
"non-working copy paths for 'commit'"
sbox.build(read_only=True)
for target in _invalid_wc_path_targets:
- run_and_verify_svn_in_wc(sbox, "svn: '.*' is a URL, but URLs cannot be " +
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: '.*' is a URL, but URLs cannot be " +
"commit targets", 'commit', target)
def invalid_copy_sources(sbox):
"invalid sources for 'copy'"
sbox.build(read_only=True)
for (src1, src2) in [("iota", "^/"), ("^/", "iota"), ("file://", "iota")]:
- run_and_verify_svn_in_wc(sbox, "svn: Cannot mix repository and working " +
+ run_and_verify_svn_in_wc(sbox, "svn: E200007: Cannot mix repository and working " +
"copy sources", 'copy', src1, src2, "A")
def invalid_copy_target(sbox):
@@ -102,30 +102,30 @@ def invalid_copy_target(sbox):
sbox.build(read_only=True)
mu_path = os.path.join('A', 'mu')
C_path = os.path.join('A', 'C')
- run_and_verify_svn_in_wc(sbox, "svn: Path '.*' is not a directory",
+ run_and_verify_svn_in_wc(sbox, "svn: E155007: Path '.*' is not a directory",
'copy', mu_path, C_path, "iota")
def invalid_delete_targets(sbox):
"invalid targets for 'delete'"
sbox.build(read_only=True)
for (target1, target2) in [("iota", "^/"), ("file://", "iota")]:
- run_and_verify_svn_in_wc(sbox, "svn: Cannot mix repository and working "
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Cannot mix repository and working "
"copy targets", 'delete', target1, target2)
def invalid_diff_targets(sbox):
"invalid targets for 'diff'"
sbox.build(read_only=True)
for (target1, target2) in [("iota", "^/"), ("file://", "iota")]:
- run_and_verify_svn_in_wc(sbox, "svn: Cannot mix repository and working "
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Cannot mix repository and working "
"copy targets", 'diff', target1, target2)
- run_and_verify_svn_in_wc(sbox, "svn: Summarizing diff can only compare "
+ run_and_verify_svn_in_wc(sbox, "svn: E200007: Summarizing diff can only compare "
"repository to repository",
'diff', '--summarize', "iota", "A")
def invalid_export_targets(sbox):
"invalid targets for 'export'"
sbox.build(read_only=True)
- run_and_verify_svn_in_wc(sbox, "svn: Can't create directory 'iota':.*",
+ run_and_verify_svn_in_wc(sbox, "svn: (E000017|E720183): Can't create directory 'iota':.*",
'export', '.', 'iota')
for target in ["^/", "file://"]:
run_and_verify_svn_in_wc(sbox, "svn:.*is not a local path",
@@ -138,32 +138,32 @@ def invalid_import_args(sbox):
'import', '^/', '^/')
run_and_verify_svn_in_wc(sbox, "svn:.*is not a local path",
'import', '^/', 'iota')
- run_and_verify_svn_in_wc(sbox, "svn: Invalid URL 'iota'",
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Invalid URL 'iota'",
'import', 'iota', 'iota')
def invalid_log_targets(sbox):
"invalid targets for 'log'"
sbox.build(read_only=True)
for (target1, target2) in [('^/', '/a/b/c'), ('^/', '^/'), ('^/', 'file://')]:
- run_and_verify_svn_in_wc(sbox, "svn: Only relative paths can be " +
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Only relative paths can be " +
"specified after a URL for 'svn log', but.*is " +
"not a relative path", 'log', target1, target2)
def invalid_merge_args(sbox):
"invalid arguments for 'merge'"
sbox.build(read_only=True)
- run_and_verify_svn_in_wc(sbox, "svn: A working copy merge source needs "
+ run_and_verify_svn_in_wc(sbox, "svn: E195002: A working copy merge source needs "
"an explicit revision", 'merge', 'iota', '^/')
for (src, target) in [('iota@HEAD', '^/'), ('iota@BASE', 'file://')]:
- run_and_verify_svn_in_wc(sbox, "svn: Merge sources must both be either "
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Merge sources must both be either "
"paths or URLs", 'merge', src, target)
- run_and_verify_svn_in_wc(sbox, "svn: Path '.*' does not exist",
+ run_and_verify_svn_in_wc(sbox, "svn: E155010: Path '.*' does not exist",
'merge', 'iota@BASE', 'iota@HEAD', 'nonexistent')
- run_and_verify_svn_in_wc(sbox, "svn: Too many arguments given",
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Too many arguments given",
'merge', '-c42', '^/A/B', '^/A/C', 'iota')
- run_and_verify_svn_in_wc(sbox, "svn: Cannot specify a revision range with" +
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Cannot specify a revision range with" +
" two URLs", 'merge', '-c42', '^/mu', '^/')
- run_and_verify_svn_in_wc(sbox, "svn: Path '.*' does not exist",
+ run_and_verify_svn_in_wc(sbox, "svn: E155010: Path '.*' does not exist",
'merge', '-c42', '^/mu', 'nonexistent')
def invalid_wcpath_upgrade(sbox):
@@ -198,14 +198,14 @@ def invalid_lock_targets(sbox):
"wc paths and repo URL target mixture for 'lock'"
sbox.build(read_only=True)
for (target1, target2) in [("iota", "^/"), ("file://", "iota")]:
- run_and_verify_svn_in_wc(sbox, "svn: Cannot mix repository and working "
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Cannot mix repository and working "
"copy targets", 'lock', target1, target2)
def invalid_unlock_targets(sbox):
"wc paths and repo URL target mixture for 'unlock'"
sbox.build(read_only=True)
for (target1, target2) in [("iota", "^/"), ("file://", "iota")]:
- run_and_verify_svn_in_wc(sbox, "svn: Cannot mix repository and working "
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Cannot mix repository and working "
"copy targets", 'unlock', target1, target2)
def invalid_status_targets(sbox):
@@ -239,7 +239,7 @@ def invalid_relocate_targets(sbox):
def invalid_mkdir_targets(sbox):
"invalid targets for 'mkdir'"
sbox.build(read_only=True)
- run_and_verify_svn_in_wc(sbox, "svn: Cannot mix repository and working "
+ run_and_verify_svn_in_wc(sbox, "svn: E205000: Cannot mix repository and working "
"copy targets", 'mkdir', "folder", "^/folder")
def invalid_update_targets(sbox):
Modified: subversion/branches/performance/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/lock_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/lock_tests.py Wed Feb 2 13:04:51 2011
@@ -359,7 +359,7 @@ def enforce_lock(sbox):
# svn:needs-lock value should be forced to a '*'
svntest.actions.set_prop('svn:needs-lock', 'foo', iota_path)
svntest.actions.set_prop('svn:needs-lock', '*', lambda_path)
- expected_err = ".*svn: warning: To turn off the svn:needs-lock property,.*"
+ expected_err = ".*svn: warning: W125005: To turn off the svn:needs-lock property,.*"
svntest.actions.set_prop('svn:needs-lock', ' ', mu_path, expected_err)
# Check svn:needs-lock
@@ -967,11 +967,11 @@ def lock_and_exebit1(sbox):
gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
- expected_err = ".*svn: warning: To turn off the svn:needs-lock property,.*"
+ expected_err = ".*svn: warning: W125005: To turn off the svn:needs-lock property,.*"
svntest.actions.run_and_verify_svn2(None, None, expected_err, 0,
'ps', 'svn:needs-lock', ' ', gamma_path)
- expected_err = ".*svn: warning: To turn off the svn:executable property,.*"
+ expected_err = ".*svn: warning: W125005: To turn off the svn:executable property,.*"
svntest.actions.run_and_verify_svn2(None, None, expected_err, 0,
'ps', 'svn:executable', ' ', gamma_path)
@@ -1043,11 +1043,11 @@ def lock_and_exebit2(sbox):
gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
- expected_err = ".*svn: warning: To turn off the svn:needs-lock property,.*"
+ expected_err = ".*svn: warning: W125005: To turn off the svn:needs-lock property,.*"
svntest.actions.run_and_verify_svn2(None, None, expected_err, 0,
'ps', 'svn:needs-lock', ' ', gamma_path)
- expected_err = ".*svn: warning: To turn off the svn:executable property,.*"
+ expected_err = ".*svn: warning: W125005: To turn off the svn:executable property,.*"
svntest.actions.run_and_verify_svn2(None, None, expected_err, 0,
'ps', 'svn:executable', ' ', gamma_path)
@@ -1390,7 +1390,7 @@ def unlocked_lock_of_other_user(sbox):
if sbox.repo_url.startswith("http"):
expected_err = ".*403 Forbidden.*"
else:
- expected_err = "svn: warning: User '%s' is trying to use a lock owned by "\
+ expected_err = "svn: warning: W160039: User '%s' is trying to use a lock owned by "\
"'%s'.*" % (svntest.main.wc_author2, svntest.main.wc_author)
svntest.actions.run_and_verify_svn2(None, [], expected_err, 0,
'unlock',
Modified: subversion/branches/performance/subversion/tests/cmdline/merge_reintegrate_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/merge_reintegrate_tests.py?rev=1066452&r1=1066451&r2=1066452&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/merge_reintegrate_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/merge_reintegrate_tests.py Wed Feb 2 13:04:51 2011
@@ -1219,7 +1219,7 @@ def reintegrate_with_subtree_mergeinfo(s
svntest.verify.verify_outputs("Reintegrate failed but not "
"in the way expected",
err, None,
- "(svn: Reintegrate can only be used if "
+ "(svn: E195016: Reintegrate can only be used if "
"revisions 2 through 15 were previously "
"merged from .*/A to the reintegrate source, "
"but this is not the case:\n)"