You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/01/28 16:48:57 UTC
svn commit: r1064743 [4/5] - in /subversion/branches/ignore-mergeinfo-log:
./ subversion/bindings/javahl/tests/org/apache/subversion/javahl/
subversion/include/ subversion/include/private/ subversion/libsvn_client/
subversion/libsvn_diff/ subversion/li...
Modified: subversion/branches/ignore-mergeinfo-log/subversion/svn/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svn/main.c?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svn/main.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svn/main.c Fri Jan 28 15:48:53 2011
@@ -126,7 +126,6 @@ typedef enum svn_cl__longopt_t {
opt_ignore_mergeinfo
} svn_cl__longopt_t;
-#define SVN_CL__OPTION_CONTINUATION_INDENT " "
/* Option codes and descriptions for the command line client.
*
@@ -145,23 +144,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,
@@ -175,45 +174,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")},
@@ -225,7 +224,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")},
@@ -253,21 +252,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")},
@@ -284,42 +283,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")},
@@ -336,9 +335,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.")},
{"ignore-mergeinfo", opt_ignore_mergeinfo, 0,
N_("ignore changes to mergeinfo")},
@@ -713,7 +712,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"
@@ -977,9 +975,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/ignore-mergeinfo-log/subversion/svn/merge-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svn/merge-cmd.c?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svn/merge-cmd.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svn/merge-cmd.c Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/svn/patch-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svn/patch-cmd.c?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svn/patch-cmd.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svn/patch-cmd.c Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svn/util.c?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svn/util.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svn/util.c Fri Jan 28 15:48:53 2011
@@ -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/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.c?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.c Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.h?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/dump_editor.h Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/svnrdump/load_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/load_editor.c?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/load_editor.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svnrdump/load_editor.c Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svnserve/serve.c?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svnserve/serve.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svnserve/serve.c Fri Jan 28 15:48:53 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;
}
@@ -2037,10 +2041,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 +2084,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 +2114,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 +2169,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 +2258,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)
@@ -2389,9 +2391,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;
@@ -2435,8 +2437,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));
@@ -2499,9 +2501,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))
@@ -2563,8 +2565,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,
@@ -2620,9 +2622,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,
@@ -2677,9 +2679,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));
@@ -2721,8 +2722,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));
@@ -2849,8 +2850,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,
@@ -2965,23 +2966,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);
@@ -2999,9 +2998,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/ignore-mergeinfo-log/subversion/tests/cmdline/authz_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/authz_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/authz_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/authz_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/autoprop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/autoprop_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/autoprop_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/autoprop_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/basic_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/basic_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/basic_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/basic_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/cat_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/cat_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/cat_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/cat_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/changelist_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/changelist_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/changelist_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/changelist_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/commit_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/commit_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/commit_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/commit_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/depth_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/depth_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/depth_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/diff_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/diff_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/diff_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/input_validation_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/input_validation_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/input_validation_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/input_validation_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/lock_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/lock_tests.py Fri Jan 28 15:48:53 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/ignore-mergeinfo-log/subversion/tests/cmdline/merge_reintegrate_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_reintegrate_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_reintegrate_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_reintegrate_tests.py Fri Jan 28 15:48:53 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)"
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py Fri Jan 28 15:48:53 2011
@@ -16078,7 +16078,7 @@ def merge_with_os_deleted_subtrees(sbox)
re_sep = os.sep
# Common part of the expected error message for all cases we will test.
- err_re = "svn: Merge tracking not allowed with missing subtrees; " + \
+ err_re = "svn: E195016: Merge tracking not allowed with missing subtrees; " + \
"try restoring these items first:" + \
"|(\n)" + \
"|(.*apr_err.*\n)" # In case of debug build
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/prop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/prop_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/prop_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/prop_tests.py Fri Jan 28 15:48:53 2011
@@ -674,18 +674,18 @@ def inappropriate_props(sbox):
# ...grammatically incorrect
svntest.actions.run_and_verify_svn('illegal grammar', None,
- "svn: Pathname not terminated by ':'\n",
+ "svn: E200020: Pathname not terminated by ':'\n",
'propset', SVN_PROP_MERGEINFO, '/trunk',
path)
svntest.actions.run_and_verify_svn('illegal grammar', None,
- "svn: Invalid revision number found "
+ "svn: E200022: Invalid revision number found "
"parsing 'one'\n",
'propset', SVN_PROP_MERGEINFO,
'/trunk:one', path)
# ...contain overlapping revision ranges of differing inheritability.
svntest.actions.run_and_verify_svn('overlapping ranges', None,
- "svn: Unable to parse overlapping "
+ "svn: E200020: Unable to parse overlapping "
"revision ranges '9-20\\*' and "
"'18-22' with different "
"inheritance types\n",
@@ -693,7 +693,7 @@ def inappropriate_props(sbox):
'/branch:5-7,9-20*,18-22', path)
svntest.actions.run_and_verify_svn('overlapping ranges', None,
- "svn: Unable to parse overlapping "
+ "svn: E200020: Unable to parse overlapping "
"revision ranges "
"(('3' and '3\\*')|('3\\*' and '3')) "
"with different "
@@ -704,21 +704,21 @@ def inappropriate_props(sbox):
# ...contain revision ranges with start revisions greater than or
# equal to end revisions.
svntest.actions.run_and_verify_svn('range start >= range end', None,
- "svn: Unable to parse reversed "
+ "svn: E200020: Unable to parse reversed "
"revision range '20-5'\n",
'propset', SVN_PROP_MERGEINFO,
'/featureX:4,20-5', path)
# ...contain paths mapped to empty revision ranges
svntest.actions.run_and_verify_svn('empty ranges', None,
- "svn: Mergeinfo for '/trunk' maps to "
+ "svn: E200020: Mergeinfo for '/trunk' maps to "
"an empty revision range\n",
'propset', SVN_PROP_MERGEINFO,
'/trunk:', path)
# ...contain non-inheritable ranges when the target is a file.
svntest.actions.run_and_verify_svn('empty ranges', None,
- "svn: Cannot set non-inheritable "
+ "svn: E200020: Cannot set non-inheritable "
"mergeinfo on a non-directory*",
'propset', SVN_PROP_MERGEINFO,
'/A/D/H/psi:1*', iota_path)
@@ -1711,7 +1711,7 @@ def post_revprop_change_hook(sbox):
# serf/neon/mod_dav_svn splits the "svn: hook failed" line
expected_error = svntest.verify.RegexOutput([
- '(svn: |)post-revprop-change hook failed',
+ '(svn: E165001: |)post-revprop-change hook failed',
error_msg + "\n",
], match_all = False)
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/schedule_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/schedule_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/schedule_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/schedule_tests.py Fri Jan 28 15:48:53 2011
@@ -671,7 +671,7 @@ def propset_on_deleted_should_fail(sbox)
svntest.actions.run_and_verify_svn(None, None, [], 'rm', iota)
- svntest.actions.run_and_verify_svn(None, None, "svn: Can't set propert.*",
+ svntest.actions.run_and_verify_svn(None, None, "svn: E155023: Can't set propert.*",
'ps', 'prop', 'val', iota)
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py Fri Jan 28 15:48:53 2011
@@ -153,7 +153,7 @@ def replace_file_with_symlink(sbox):
'log msg',
wc_dir)
- regex = 'svn: Commit failed'
+ regex = 'svn: E145001: Commit failed'
for line in stderr_lines:
if re.match(regex, line):
break
@@ -305,7 +305,7 @@ def replace_symlink_with_file(sbox):
'log msg',
wc_dir)
- regex = 'svn: Commit failed'
+ regex = 'svn: E145001: Commit failed'
for line in stderr_lines:
if re.match(regex, line):
break
@@ -624,7 +624,7 @@ def warn_on_reserved_name(sbox):
svntest.actions.run_and_verify_svn(
"Locking a file with a reserved name failed to result in an error",
None,
- ".*Skipping argument: '.+' ends in a reserved name.*",
+ ".*Skipping argument: E200025: '.+' ends in a reserved name.*",
'lock', reserved_path)
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py Fri Jan 28 15:48:53 2011
@@ -791,7 +791,7 @@ def status_on_unversioned_dotdot(sbox):
exit_code, out, err = svntest.main.run_svn(1, 'st', '..')
for line in err:
- if line.find('svn: warning: \'..\' is not a working copy') != -1:
+ if line.find('svn: warning: W155007: \'..\' is not a working copy') != -1:
break
else:
raise svntest.Failure
@@ -964,7 +964,7 @@ def status_unversioned_dir(sbox):
"status on unversioned dir (issue 2030)"
sbox.build(read_only = True)
dir = sbox.repo_dir
- expected_err = "svn: warning: '.*(/|\\\\)" + os.path.basename(dir) + \
+ expected_err = "svn: warning: W155007: '.*(/|\\\\)" + os.path.basename(dir) + \
"' is not a working copy"
svntest.actions.run_and_verify_svn2(None, [], expected_err, 0,
"status", dir, dir)
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py Fri Jan 28 15:48:53 2011
@@ -26,6 +26,7 @@
# General modules
import sys, os
+import re
# Our testing module
import svntest
@@ -49,9 +50,10 @@ Wimp = svntest.testcase.Wimp
# /dev/null). This is really harmless, but `svnadmin dump` contains
# the logic for differentiating between these two cases.
-mismatched_headers_re = \
- "Prop-delta: |Text-content-sha1: |Text-copy-source-md5: |" \
- "Text-copy-source-sha1: |Text-delta-base-sha1: .*"
+mismatched_headers_re = re.compile(
+ "Prop-delta: .*|Text-content-sha1: .*|Text-copy-source-md5: .*|"
+ "Text-copy-source-sha1: .*|Text-delta-base-sha1: .*"
+)
######################################################################
# Helper routines
@@ -102,6 +104,7 @@ def run_dump_test(sbox, dumpfile_name, e
svnadmin_dumpfile = open(os.path.join(svnrdump_tests_dir,
expected_dumpfile_name),
'rb').readlines()
+ svnadmin_dumpfile = svntest.verify.UnorderedOutput(svnadmin_dumpfile)
# Compare the output from stdout
svntest.verify.compare_and_display_lines(
@@ -318,6 +321,10 @@ def descend_into_replace_dump(sbox):
run_dump_test(sbox, "descend-into-replace.dump", subdir='/trunk/H',
expected_dumpfile_name = "descend-into-replace.expected.dump")
+def descend_into_replace_load(sbox):
+ "load: descending into replaced dir looks in src"
+ run_load_test(sbox, "descend-into-replace.dump")
+
########################################################################
# Run the tests
@@ -358,7 +365,8 @@ test_list = [ None,
copy_bad_line_endings_dump,
commit_a_copy_of_root_dump,
commit_a_copy_of_root_load,
- XFail(descend_into_replace_dump, svntest.main.is_fs_type_bdb),
+ descend_into_replace_dump,
+ descend_into_replace_load,
]
if __name__ == '__main__':
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.dump?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
Files subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.dump (original) and subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.dump Fri Jan 28 15:48:53 2011 differ
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.expected.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.expected.dump?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
Files subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.expected.dump (original) and subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests_data/descend-into-replace.expected.dump Fri Jan 28 15:48:53 2011 differ
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py Fri Jan 28 15:48:53 2011
@@ -278,7 +278,7 @@ def tag_with_modified_file(sbox):
def dir_prop_change(sbox):
"directory property changes"
- run_test(sbox, "dir_prop_change.dump")
+ run_test(sbox, "dir-prop-change.dump")
#----------------------------------------------------------------------
@@ -794,7 +794,7 @@ def delete_svn_props(sbox):
def commit_a_copy_of_root(sbox):
"commit a copy of root causes sync to fail"
#Testcase for issue 3438.
- run_test(sbox, "repo_with_copy_of_root_dir.dump")
+ run_test(sbox, "repo-with-copy-of-root-dir.dump")
# issue #3641 'svnsync fails to partially copy a repository'.
# This currently fails because while replacements with history
@@ -834,8 +834,8 @@ def commit_a_copy_of_root(sbox):
# mkdir %ROOT_URL%/trunk/H/Z/B
def descend_into_replace(sbox):
"descending into replaced dir looks in src"
- run_test(sbox, "descend_into_replace.dump", subdir='/trunk/H',
- exp_dump_file_name = "descend_into_replace.expected.dump")
+ run_test(sbox, "descend-into-replace.dump", subdir='/trunk/H',
+ exp_dump_file_name = "descend-into-replace.expected.dump")
# issue #3728
def delete_revprops(sbox):
@@ -906,7 +906,7 @@ test_list = [ None,
copy_bad_line_endings,
delete_svn_props,
commit_a_copy_of_root,
- XFail(descend_into_replace),
+ descend_into_replace,
delete_revprops,
]
serial_only = True
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/verify.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/verify.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/verify.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/verify.py Fri Jan 28 15:48:53 2011
@@ -238,6 +238,11 @@ class UnorderedOutput(ExpectedOutput):
def __cmp__(self, other):
raise Exception('badness')
+ def matches_except(self, expected, actual, except_re):
+ assert type(actual) == type([]) # ### if this trips: fix it!
+ return self.is_equivalent_list([l for l in expected if not except_re.match(l)],
+ [l for l in actual if not except_re.match(l)])
+
def is_equivalent_list(self, expected, actual):
"Disregard the order of ACTUAL lines during comparison."
Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/wc.py?rev=1064743&r1=1064742&r2=1064743&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/wc.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/wc.py Fri Jan 28 15:48:53 2011
@@ -592,7 +592,7 @@ class State:
item = StateItem.from_entry(entry)
if name:
desc[repos_join(parent, name)] = item
- implied_url = repos_join(parent_url, svn_url_quote(name))
+ implied_url = repos_join(parent_url, svn_uri_quote(name))
else:
item._url = entry.url # attach URL to directory StateItems
desc[parent] = item
@@ -600,7 +600,7 @@ class State:
grandpa, this_name = repos_split(parent)
if grandpa in desc:
implied_url = repos_join(desc[grandpa]._url,
- svn_url_quote(this_name))
+ svn_uri_quote(this_name))
else:
implied_url = None
@@ -808,7 +808,7 @@ def repos_join(base, path):
return base + '/' + path
-def svn_url_quote(url):
+def svn_uri_quote(url):
# svn defines a different set of "safe" characters than Python does, so
# we need to avoid escaping them. see subr/path.c:uri_char_validity[]
return urllib.quote(url, "!$&'()*+,-./:=@_~")