You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2014/01/09 10:31:15 UTC
svn commit: r1556765 [9/12] - in /subversion/branches/fsfs-ucsnorm: ./
contrib/server-side/fsfsfixer/fixer/ subversion/bindings/javahl/native/
subversion/bindings/javahl/native/jniwrapper/
subversion/bindings/javahl/src/org/apache/subversion/javahl/ su...
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/hash.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/hash.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/hash.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/hash.c Thu Jan 9 09:31:10 2014
@@ -41,6 +41,7 @@
#include "svn_pools.h"
#include "private/svn_dep_compat.h"
+#include "private/svn_sorts_private.h"
#include "private/svn_subr_private.h"
@@ -88,37 +89,67 @@
/*** Dumping and loading hash files. */
/* Implements svn_hash_read2 and svn_hash_read_incremental. */
-static svn_error_t *
-hash_read(apr_hash_t *hash, svn_stream_t *stream, const char *terminator,
- svn_boolean_t incremental, apr_pool_t *pool)
+svn_error_t *
+svn_hash__read_entry(svn_hash__entry_t *entry,
+ svn_stream_t *stream,
+ const char *terminator,
+ svn_boolean_t incremental,
+ apr_pool_t *pool)
{
svn_stringbuf_t *buf;
svn_boolean_t eof;
- apr_size_t len, keylen, vallen;
- char c, *keybuf, *valbuf;
- apr_pool_t *iterpool = svn_pool_create(pool);
-
- while (1)
- {
- svn_error_t *err;
- apr_uint64_t ui64;
+ apr_size_t len;
+ char c;
- svn_pool_clear(iterpool);
+ svn_error_t *err;
+ apr_uint64_t ui64;
- /* Read a key length line. Might be END, though. */
- SVN_ERR(svn_stream_readline(stream, &buf, "\n", &eof, iterpool));
+ /* Read a key length line. Might be END, though. */
+ SVN_ERR(svn_stream_readline(stream, &buf, "\n", &eof, pool));
- /* Check for the end of the hash. */
- if ((!terminator && eof && buf->len == 0)
- || (terminator && (strcmp(buf->data, terminator) == 0)))
- break;
+ /* Check for the end of the hash. */
+ if ((!terminator && eof && buf->len == 0)
+ || (terminator && (strcmp(buf->data, terminator) == 0)))
+ {
+ entry->key = NULL;
+ entry->keylen = 0;
+ entry->val = NULL;
+ entry->vallen = 0;
+
+ return SVN_NO_ERROR;
+ }
+
+ /* Check for unexpected end of stream */
+ if (eof)
+ return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
+ _("Serialized hash missing terminator"));
- /* Check for unexpected end of stream */
- if (eof)
+ if ((buf->len >= 3) && (buf->data[0] == 'K') && (buf->data[1] == ' '))
+ {
+ /* Get the length of the key */
+ err = svn_cstring_strtoui64(&ui64, buf->data + 2,
+ 0, APR_SIZE_MAX, 10);
+ if (err)
+ return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
+ _("Serialized hash malformed"));
+ entry->keylen = (apr_size_t)ui64;
+
+ /* Now read that much into a buffer. */
+ entry->key = apr_palloc(pool, entry->keylen + 1);
+ SVN_ERR(svn_stream_read(stream, entry->key, &entry->keylen));
+ entry->key[entry->keylen] = '\0';
+
+ /* Suck up extra newline after key data */
+ len = 1;
+ SVN_ERR(svn_stream_read(stream, &c, &len));
+ if (c != '\n')
return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash missing terminator"));
+ _("Serialized hash malformed"));
+
+ /* Read a val length line */
+ SVN_ERR(svn_stream_readline(stream, &buf, "\n", &eof, pool));
- if ((buf->len >= 3) && (buf->data[0] == 'K') && (buf->data[1] == ' '))
+ if ((buf->data[0] == 'V') && (buf->data[1] == ' '))
{
/* Get the length of the key */
err = svn_cstring_strtoui64(&ui64, buf->data + 2,
@@ -126,81 +157,88 @@ hash_read(apr_hash_t *hash, svn_stream_t
if (err)
return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
_("Serialized hash malformed"));
- keylen = (apr_size_t)ui64;
+ entry->vallen = (apr_size_t)ui64;
- /* Now read that much into a buffer. */
- keybuf = apr_palloc(pool, keylen + 1);
- SVN_ERR(svn_stream_read(stream, keybuf, &keylen));
- keybuf[keylen] = '\0';
+ entry->val = apr_palloc(pool, entry->vallen + 1);
+ SVN_ERR(svn_stream_read(stream, entry->val, &entry->vallen));
+ entry->val[entry->vallen] = '\0';
- /* Suck up extra newline after key data */
+ /* Suck up extra newline after val data */
len = 1;
SVN_ERR(svn_stream_read(stream, &c, &len));
if (c != '\n')
return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
_("Serialized hash malformed"));
+ }
+ else
+ return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
+ _("Serialized hash malformed"));
+ }
+ else if (incremental && (buf->len >= 3)
+ && (buf->data[0] == 'D') && (buf->data[1] == ' '))
+ {
+ /* Get the length of the key */
+ err = svn_cstring_strtoui64(&ui64, buf->data + 2,
+ 0, APR_SIZE_MAX, 10);
+ if (err)
+ return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
+ _("Serialized hash malformed"));
+ entry->keylen = (apr_size_t)ui64;
+
+ /* Now read that much into a buffer. */
+ entry->key = apr_palloc(pool, entry->keylen + 1);
+ SVN_ERR(svn_stream_read(stream, entry->key, &entry->keylen));
+ entry->key[entry->keylen] = '\0';
+
+ /* Suck up extra newline after key data */
+ len = 1;
+ SVN_ERR(svn_stream_read(stream, &c, &len));
+ if (c != '\n')
+ return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
+ _("Serialized hash malformed"));
- /* Read a val length line */
- SVN_ERR(svn_stream_readline(stream, &buf, "\n", &eof, iterpool));
+ /* Remove this hash entry. */
+ entry->vallen = 0;
+ entry->val = NULL;
+ }
+ else
+ {
+ return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
+ _("Serialized hash malformed"));
+ }
- if ((buf->data[0] == 'V') && (buf->data[1] == ' '))
- {
- err = svn_cstring_strtoui64(&ui64, buf->data + 2,
- 0, APR_SIZE_MAX, 10);
- if (err)
- return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
- _("Serialized hash malformed"));
- vallen = (apr_size_t)ui64;
-
- valbuf = apr_palloc(iterpool, vallen + 1);
- SVN_ERR(svn_stream_read(stream, valbuf, &vallen));
- valbuf[vallen] = '\0';
+ return SVN_NO_ERROR;
+}
- /* Suck up extra newline after val data */
- len = 1;
- SVN_ERR(svn_stream_read(stream, &c, &len));
- if (c != '\n')
- return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash malformed"));
+static svn_error_t *
+hash_read(apr_hash_t *hash, svn_stream_t *stream, const char *terminator,
+ svn_boolean_t incremental, apr_pool_t *pool)
+{
+ apr_pool_t *iterpool = svn_pool_create(pool);
- /* Add a new hash entry. */
- apr_hash_set(hash, keybuf, keylen,
- svn_string_ncreate(valbuf, vallen, pool));
- }
- else
- return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash malformed"));
- }
- else if (incremental && (buf->len >= 3)
- && (buf->data[0] == 'D') && (buf->data[1] == ' '))
- {
- /* Get the length of the key */
- err = svn_cstring_strtoui64(&ui64, buf->data + 2,
- 0, APR_SIZE_MAX, 10);
- if (err)
- return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
- _("Serialized hash malformed"));
- keylen = (apr_size_t)ui64;
+ while (1)
+ {
+ svn_hash__entry_t entry;
- /* Now read that much into a buffer. */
- keybuf = apr_palloc(iterpool, keylen + 1);
- SVN_ERR(svn_stream_read(stream, keybuf, &keylen));
- keybuf[keylen] = '\0';
+ svn_pool_clear(iterpool);
+ SVN_ERR(svn_hash__read_entry(&entry, stream, terminator,
+ incremental, iterpool));
- /* Suck up extra newline after key data */
- len = 1;
- SVN_ERR(svn_stream_read(stream, &c, &len));
- if (c != '\n')
- return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash malformed"));
+ /* end of hash? */
+ if (entry.key == NULL)
+ break;
- /* Remove this hash entry. */
- apr_hash_set(hash, keybuf, keylen, NULL);
+ if (entry.val)
+ {
+ /* Add a new hash entry. */
+ apr_hash_set(hash, apr_pstrmemdup(pool, entry.key, entry.keylen),
+ entry.keylen,
+ svn_string_ncreate(entry.val, entry.vallen, pool));
}
else
{
- return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash malformed"));
+ /* Remove this hash entry. */
+ apr_hash_set(hash, entry.key, entry.keylen, NULL);
}
}
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/mergeinfo.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/mergeinfo.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/mergeinfo.c Thu Jan 9 09:31:10 2014
@@ -35,6 +35,7 @@
#include "svn_mergeinfo.h"
#include "private/svn_fspath.h"
#include "private/svn_mergeinfo_private.h"
+#include "private/svn_sorts_private.h"
#include "private/svn_string_private.h"
#include "private/svn_subr_private.h"
#include "svn_hash.h"
@@ -878,7 +879,7 @@ adjust_remaining_ranges(svn_rangelist_t
new_modified_range->inheritable = FALSE;
modified_range->end = next_range->start;
(*range_index)+=2;
- svn_sort__array_insert(&new_modified_range, rangelist,
+ svn_sort__array_insert(rangelist, &new_modified_range,
*range_index);
/* Recurse with the new range. */
adjust_remaining_ranges(rangelist, range_index, result_pool);
@@ -1019,7 +1020,7 @@ svn_rangelist_merge2(svn_rangelist_t *ra
svn_merge_range_dup(range, result_pool);
range_copy->end = change->start;
range->start = change->start;
- svn_sort__array_insert(&range_copy, rangelist, i++);
+ svn_sort__array_insert(rangelist, &range_copy, i++);
}
else
{
@@ -1041,7 +1042,7 @@ svn_rangelist_merge2(svn_rangelist_t *ra
into RANGELIST. */
svn_merge_range_t *change_copy =
svn_merge_range_dup(change, result_pool);
- svn_sort__array_insert(&change_copy, rangelist, i++);
+ svn_sort__array_insert(rangelist, &change_copy, i++);
j++;
}
else if (change->end == range->start)
@@ -1060,7 +1061,7 @@ svn_rangelist_merge2(svn_rangelist_t *ra
a copy of CHANGE into RANGELIST. */
svn_merge_range_t *change_copy =
svn_merge_range_dup(change, result_pool);
- svn_sort__array_insert(&change_copy, rangelist, i);
+ svn_sort__array_insert(rangelist, &change_copy, i);
j++;
}
}
@@ -1092,7 +1093,7 @@ svn_rangelist_merge2(svn_rangelist_t *ra
svn_merge_range_dup(change, result_pool);
change_copy->end = range->start;
change->start = range->start;
- svn_sort__array_insert(&change_copy, rangelist, i++);
+ svn_sort__array_insert(rangelist, &change_copy, i++);
}
else
{
@@ -1135,7 +1136,7 @@ svn_rangelist_merge2(svn_rangelist_t *ra
range->start = change->start;
range->end = change->end;
range->inheritable = TRUE;
- svn_sort__array_insert(&range_copy, rangelist, ++i);
+ svn_sort__array_insert(rangelist, &range_copy, ++i);
j++;
}
}
@@ -1153,7 +1154,7 @@ svn_rangelist_merge2(svn_rangelist_t *ra
range_copy->end = change->end;
range_copy->inheritable = TRUE;
range->start = change->end;
- svn_sort__array_insert(&range_copy, rangelist, i++);
+ svn_sort__array_insert(rangelist, &range_copy, i++);
j++;
}
}
@@ -1168,7 +1169,7 @@ svn_rangelist_merge2(svn_rangelist_t *ra
APR_ARRAY_IDX(changes, j, svn_merge_range_t *);
svn_merge_range_t *change_copy = svn_merge_range_dup(change,
result_pool);
- svn_sort__array_insert(&change_copy, rangelist, rangelist->nelts);
+ svn_sort__array_insert(rangelist, &change_copy, rangelist->nelts);
}
return SVN_NO_ERROR;
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/sorts.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/sorts.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/sorts.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/sorts.c Thu Jan 9 09:31:10 2014
@@ -34,6 +34,7 @@
#include "svn_path.h"
#include "svn_sorts.h"
#include "svn_error.h"
+#include "private/svn_sorts_private.h"
@@ -215,8 +216,8 @@ bsearch_lower_bound(const void *key,
}
int
-svn_sort__bsearch_lower_bound(const void *key,
- const apr_array_header_t *array,
+svn_sort__bsearch_lower_bound(const apr_array_header_t *array,
+ const void *key,
int (*compare_func)(const void *, const void *))
{
return bsearch_lower_bound(key,
@@ -224,9 +225,43 @@ svn_sort__bsearch_lower_bound(const void
compare_func);
}
+void *
+svn_sort__array_lookup(const apr_array_header_t *array,
+ const void *key,
+ int *hint,
+ int (*compare_func)(const void *, const void *))
+{
+ void *result;
+ int idx;
+
+ /* If provided, try the index following *HINT (i.e. probably the last
+ * hit location) first. This speeds up linear scans. */
+ if (hint)
+ {
+ idx = *hint;
+ *hint = ++idx;
+ if (idx >= 0 && idx < array->nelts)
+ {
+ result = array->elts + idx * array->elt_size;
+ if (!compare_func(result, key))
+ return result;
+ }
+ }
+
+ idx = bsearch_lower_bound(key, array->elts, array->nelts, array->elt_size,
+ compare_func);
+ if (hint)
+ *hint = idx;
+ if (idx >= array->nelts)
+ return NULL;
+
+ result = array->elts + idx * array->elt_size;
+ return compare_func(result, key) ? NULL : result;
+}
+
void
-svn_sort__array_insert(const void *new_element,
- apr_array_header_t *array,
+svn_sort__array_insert(apr_array_header_t *array,
+ const void *new_element,
int insert_index)
{
int elements_to_move;
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/string.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/string.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/string.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/string.c Thu Jan 9 09:31:10 2014
@@ -78,14 +78,10 @@ membuf_ensure(void **data, apr_size_t *s
apr_size_t new_size = *size;
if (new_size == 0)
- /* APR will increase odd allocation sizes to the next
- * multiple for 8, for instance. Take advantage of that
- * knowledge and allow for the extra size to be used. */
new_size = minimum_size;
else
while (new_size < minimum_size)
{
- /* new_size is aligned; doubling it should keep it aligned */
const apr_size_t prev_size = new_size;
new_size *= 2;
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/version.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/version.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/version.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_subr/version.c Thu Jan 9 09:31:10 2014
@@ -136,7 +136,7 @@ svn_version_extended(svn_boolean_t verbo
info->build_time = __TIME__;
info->build_host = SVN_BUILD_HOST;
info->copyright = apr_pstrdup
- (pool, _("Copyright (C) 2013 The Apache Software Foundation.\n"
+ (pool, _("Copyright (C) 2014 The Apache Software Foundation.\n"
"This software consists of contributions made by many people;\n"
"see the NOTICE file for more information.\n"
"Subversion is open source software, see "
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_files.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_files.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_files.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_files.c Thu Jan 9 09:31:10 2014
@@ -464,11 +464,14 @@ svn_wc__internal_ensure_adm(svn_wc__db_t
db, local_abspath,
scratch_pool, scratch_pool));
else
- SVN_ERR(svn_wc__db_scan_base_repos(&db_repos_relpath,
- &db_repos_root_url,
- &db_repos_uuid,
- db, local_abspath,
- scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL,
+ &db_repos_relpath,
+ &db_repos_root_url,
+ &db_repos_uuid, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL,
+ db, local_abspath,
+ scratch_pool, scratch_pool));
}
/* The caller gives us a URL which should match the entry. However,
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_ops.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/adm_ops.c Thu Jan 9 09:31:10 2014
@@ -54,8 +54,9 @@
#include "conflicts.h"
#include "workqueue.h"
-#include "private/svn_subr_private.h"
#include "private/svn_dep_compat.h"
+#include "private/svn_sorts_private.h"
+#include "private/svn_subr_private.h"
struct svn_wc_committed_queue_t
@@ -631,10 +632,12 @@ check_can_add_to_parent(const char **rep
db, parent_abspath,
result_pool, scratch_pool));
else
- SVN_ERR(svn_wc__db_scan_base_repos(NULL,
- repos_root_url, repos_uuid,
- db, parent_abspath,
- result_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL,
+ repos_root_url, repos_uuid, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ db, parent_abspath,
+ result_pool, scratch_pool));
}
return SVN_NO_ERROR;
@@ -887,11 +890,13 @@ svn_wc_add4(svn_wc_context_t *wc_ctx,
const char *repos_relpath, *inner_repos_root_url, *inner_repos_uuid;
const char *inner_url;
- SVN_ERR(svn_wc__db_scan_base_repos(&repos_relpath,
- &inner_repos_root_url,
- &inner_repos_uuid,
- db, local_abspath,
- scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, &repos_relpath,
+ &inner_repos_root_url,
+ &inner_repos_uuid, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL,
+ db, local_abspath,
+ scratch_pool, scratch_pool));
if (strcmp(inner_repos_uuid, repos_uuid)
|| strcmp(repos_root_url, inner_repos_root_url))
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/cleanup.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/cleanup.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/cleanup.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/cleanup.c Thu Jan 9 09:31:10 2014
@@ -206,6 +206,8 @@ svn_wc_cleanup4(svn_wc_context_t *wc_ctx
svn_boolean_t vacuum_pristines,
svn_cancel_func_t cancel_func,
void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
apr_pool_t *scratch_pool)
{
svn_wc__db_t *db;
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/copy.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/copy.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/copy.c Thu Jan 9 09:31:10 2014
@@ -644,10 +644,13 @@ copy_or_move(svn_boolean_t *move_degrade
scratch_pool, scratch_pool));
else
/* If not added, the node must have a base or we can't copy */
- SVN_ERR(svn_wc__db_scan_base_repos(NULL, &src_repos_root_url,
- &src_repos_uuid,
- db, src_abspath,
- scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL,
+ &src_repos_root_url,
+ &src_repos_uuid, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL,
+ db, src_abspath,
+ scratch_pool, scratch_pool));
}
if (!dst_repos_root_url)
@@ -661,10 +664,13 @@ copy_or_move(svn_boolean_t *move_degrade
scratch_pool, scratch_pool));
else
/* If not added, the node must have a base or we can't copy */
- SVN_ERR(svn_wc__db_scan_base_repos(NULL, &dst_repos_root_url,
- &dst_repos_uuid,
- db, dstdir_abspath,
- scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL,
+ &dst_repos_root_url,
+ &dst_repos_uuid, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL,
+ db, dstdir_abspath,
+ scratch_pool, scratch_pool));
}
if (strcmp(src_repos_root_url, dst_repos_root_url) != 0
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/deprecated.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/deprecated.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/deprecated.c Thu Jan 9 09:31:10 2014
@@ -4202,6 +4202,7 @@ svn_wc_cleanup3(svn_wc_context_t *wc_ctx
TRUE /* clear_dav_cache */,
TRUE /* clean_pristines */,
cancel_func, cancel_baton,
+ NULL, NULL /* notify */,
scratch_pool));
}
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/diff_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/diff_editor.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/diff_editor.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/diff_editor.c Thu Jan 9 09:31:10 2014
@@ -65,10 +65,11 @@
#include "svn_hash.h"
#include "svn_sorts.h"
-#include "private/svn_subr_private.h"
-#include "private/svn_wc_private.h"
#include "private/svn_diff_tree.h"
#include "private/svn_editor.h"
+#include "private/svn_sorts_private.h"
+#include "private/svn_subr_private.h"
+#include "private/svn_wc_private.h"
#include "wc.h"
#include "props.h"
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/entries.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/entries.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/entries.c Thu Jan 9 09:31:10 2014
@@ -493,13 +493,13 @@ read_one_entry(const svn_wc_entry_t **ne
/* Grab inherited repository information, if necessary. */
if (repos_relpath == NULL)
{
- SVN_ERR(svn_wc__db_scan_base_repos(&repos_relpath,
- &entry->repos,
- &entry->uuid,
- db,
- entry_abspath,
- result_pool,
- scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, &repos_relpath,
+ &entry->repos,
+ &entry->uuid, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL,
+ db, entry_abspath,
+ result_pool, scratch_pool));
}
entry->incomplete = (status == svn_wc__db_status_incomplete);
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/status.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/status.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/status.c Thu Jan 9 09:31:10 2014
@@ -50,6 +50,7 @@
#include "translate.h"
#include "tree_conflicts.h"
+#include "private/svn_sorts_private.h"
#include "private/svn_wc_private.h"
#include "private/svn_fspath.h"
#include "private/svn_editor.h"
@@ -285,10 +286,12 @@ get_repos_root_url_relpath(const char **
}
else if (info->have_base)
{
- SVN_ERR(svn_wc__db_scan_base_repos(repos_relpath, repos_root_url,
- repos_uuid,
- db, local_abspath,
- result_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, repos_relpath,
+ repos_root_url, repos_uuid, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL,
+ db, local_abspath,
+ result_pool, scratch_pool));
}
else
{
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/update_editor.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/update_editor.c Thu Jan 9 09:31:10 2014
@@ -211,7 +211,7 @@ struct edit_baton
/* If this is a 'switch' operation, the new relpath of target_abspath,
else NULL. */
- const char *switch_relpath;
+ const char *switch_repos_relpath;
/* The URL to the root of the repository. */
const char *repos_root;
@@ -298,7 +298,7 @@ struct dir_baton
const char *local_abspath;
/* The repository relative path this directory will correspond to. */
- const char *new_relpath;
+ const char *new_repos_relpath;
/* The revision of the directory before updating */
svn_revnum_t old_revision;
@@ -489,47 +489,20 @@ cleanup_edit_baton(void *edit_baton)
return APR_SUCCESS;
}
-/* Make a new dir baton in a subpool of PB->pool. PB is the parent baton.
- If PATH and PB are NULL, this is the root directory of the edit; in this
- case, make the new dir baton in a subpool of EB->pool.
- ADDING should be TRUE if we are adding this directory. */
+/* Calculate the new repos_relpath for a directory or file */
static svn_error_t *
-make_dir_baton(struct dir_baton **d_p,
- const char *path,
- struct edit_baton *eb,
- struct dir_baton *pb,
- svn_boolean_t adding,
- apr_pool_t *scratch_pool)
+calculate_repos_relpath(const char **new_repos_relpath,
+ const char *local_abspath,
+ const char *old_repos_relpath,
+ struct edit_baton *eb,
+ struct dir_baton *pb,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
- apr_pool_t *dir_pool;
- struct dir_baton *d;
-
- if (pb != NULL)
- dir_pool = svn_pool_create(pb->pool);
- else
- dir_pool = svn_pool_create(eb->pool);
-
- SVN_ERR_ASSERT(path || (! pb));
-
- /* Okay, no easy out, so allocate and initialize a dir baton. */
- d = apr_pcalloc(dir_pool, sizeof(*d));
-
- /* Construct the PATH and baseNAME of this directory. */
- if (path)
- {
- d->name = svn_dirent_basename(path, dir_pool);
- SVN_ERR(path_join_under_root(&d->local_abspath,
- pb->local_abspath, d->name, dir_pool));
- }
- else
- {
- /* This is the root baton. */
- d->name = NULL;
- d->local_abspath = eb->anchor_abspath;
- }
+ const char *name = svn_dirent_basename(local_abspath, NULL);
- /* Figure out the new_relpath for this directory. */
- if (eb->switch_relpath)
+ /* Figure out the new_repos_relpath for this directory. */
+ if (eb->switch_repos_relpath)
{
/* Handle switches... */
@@ -538,18 +511,16 @@ make_dir_baton(struct dir_baton **d_p,
if (*eb->target_basename == '\0')
{
/* No parent baton and target_basename=="" means that we are
- the target of the switch. Thus, our NEW_RELPATH will be
- the SWITCH_RELPATH. */
- d->new_relpath = eb->switch_relpath;
+ the target of the switch. Thus, our new_repos_relpath will be
+ the switch_repos_relpath. */
+ *new_repos_relpath = eb->switch_repos_relpath;
}
else
{
/* This node is NOT the target of the switch (one of our
children is the target); therefore, it must already exist.
Get its old REPOS_RELPATH, as it won't be changing. */
- SVN_ERR(svn_wc__db_scan_base_repos(&d->new_relpath, NULL, NULL,
- eb->db, d->local_abspath,
- dir_pool, scratch_pool));
+ *new_repos_relpath = apr_pstrdup(result_pool, old_repos_relpath);
}
}
else
@@ -557,36 +528,76 @@ make_dir_baton(struct dir_baton **d_p,
/* This directory is *not* the root (has a parent). If there is
no grandparent, then we may have anchored at the parent,
and self is the target. If we match the target, then set
- NEW_RELPATH to the SWITCH_RELPATH.
+ new_repos_relpath to the switch_repos_relpath.
+
+ Otherwise, we simply extend new_repos_relpath from the parent. */
- Otherwise, we simply extend NEW_RELPATH from the parent. */
if (pb->parent_baton == NULL
- && strcmp(eb->target_basename, d->name) == 0)
- d->new_relpath = eb->switch_relpath;
+ && strcmp(eb->target_basename, name) == 0)
+ *new_repos_relpath = eb->switch_repos_relpath;
else
- d->new_relpath = svn_relpath_join(pb->new_relpath, d->name,
- dir_pool);
+ *new_repos_relpath = svn_relpath_join(pb->new_repos_relpath, name,
+ result_pool);
}
}
else /* must be an update */
{
/* If we are adding the node, then simply extend the parent's
relpath for our own. */
- if (adding)
+ if (old_repos_relpath == NULL)
{
SVN_ERR_ASSERT(pb != NULL);
- d->new_relpath = svn_relpath_join(pb->new_relpath, d->name,
- dir_pool);
+ *new_repos_relpath = svn_relpath_join(pb->new_repos_relpath, name,
+ result_pool);
}
else
{
- SVN_ERR(svn_wc__db_scan_base_repos(&d->new_relpath, NULL, NULL,
- eb->db, d->local_abspath,
- dir_pool, scratch_pool));
- SVN_ERR_ASSERT(d->new_relpath);
+ *new_repos_relpath = apr_pstrdup(result_pool, old_repos_relpath);
}
}
+ return SVN_NO_ERROR;
+}
+
+/* Make a new dir baton in a subpool of PB->pool. PB is the parent baton.
+ If PATH and PB are NULL, this is the root directory of the edit; in this
+ case, make the new dir baton in a subpool of EB->pool.
+ ADDING should be TRUE if we are adding this directory. */
+static svn_error_t *
+make_dir_baton(struct dir_baton **d_p,
+ const char *path,
+ struct edit_baton *eb,
+ struct dir_baton *pb,
+ svn_boolean_t adding,
+ apr_pool_t *scratch_pool)
+{
+ apr_pool_t *dir_pool;
+ struct dir_baton *d;
+
+ if (pb != NULL)
+ dir_pool = svn_pool_create(pb->pool);
+ else
+ dir_pool = svn_pool_create(eb->pool);
+
+ SVN_ERR_ASSERT(path || (! pb));
+
+ /* Okay, no easy out, so allocate and initialize a dir baton. */
+ d = apr_pcalloc(dir_pool, sizeof(*d));
+
+ /* Construct the PATH and baseNAME of this directory. */
+ if (path)
+ {
+ d->name = svn_dirent_basename(path, dir_pool);
+ SVN_ERR(path_join_under_root(&d->local_abspath,
+ pb->local_abspath, d->name, dir_pool));
+ }
+ else
+ {
+ /* This is the root baton. */
+ d->name = NULL;
+ d->local_abspath = eb->anchor_abspath;
+ }
+
d->edit_baton = eb;
d->parent_baton = pb;
d->pool = dir_pool;
@@ -617,7 +628,6 @@ make_dir_baton(struct dir_baton **d_p,
return SVN_NO_ERROR;
}
-
/* Forward declarations. */
static svn_error_t *
already_in_a_tree_conflict(svn_boolean_t *conflicted,
@@ -683,7 +693,7 @@ struct file_baton
const char *local_abspath;
/* The repository relative path this file will correspond to. */
- const char *new_relpath;
+ const char *new_repos_relpath;
/* The revision of the file before updating */
svn_revnum_t old_revision;
@@ -767,7 +777,6 @@ make_file_baton(struct file_baton **f_p,
svn_boolean_t adding,
apr_pool_t *scratch_pool)
{
- struct edit_baton *eb = pb->edit_baton;
apr_pool_t *file_pool = svn_pool_create(pb->pool);
struct file_baton *f = apr_pcalloc(file_pool, sizeof(*f));
@@ -779,37 +788,6 @@ make_file_baton(struct file_baton **f_p,
SVN_ERR(path_join_under_root(&f->local_abspath,
pb->local_abspath, f->name, file_pool));
- /* Figure out the new URL for this file. */
- if (eb->switch_relpath)
- {
- /* Handle switches... */
-
- /* This file has a parent directory. If there is
- no grandparent, then we may have anchored at the parent,
- and self is the target. If we match the target, then set
- NEW_RELPATH to the SWITCH_RELPATH.
-
- Otherwise, we simply extend NEW_RELPATH from the parent. */
- if (pb->parent_baton == NULL
- && strcmp(eb->target_basename, f->name) == 0)
- f->new_relpath = eb->switch_relpath;
- else
- f->new_relpath = svn_relpath_join(pb->new_relpath, f->name,
- file_pool);
- }
- else /* must be an update */
- {
- if (adding)
- f->new_relpath = svn_relpath_join(pb->new_relpath, f->name, file_pool);
- else
- {
- SVN_ERR(svn_wc__db_scan_base_repos(&f->new_relpath, NULL, NULL,
- eb->db, f->local_abspath,
- file_pool, scratch_pool));
- SVN_ERR_ASSERT(f->new_relpath);
- }
- }
-
f->pool = file_pool;
f->edit_baton = pb->edit_baton;
f->propchanges = apr_array_make(file_pool, 1, sizeof(svn_prop_t));
@@ -881,7 +859,7 @@ complete_conflict(svn_skel_t *conflict,
else
target_version = NULL;
- if (eb->switch_relpath)
+ if (eb->switch_repos_relpath)
SVN_ERR(svn_wc__conflict_skel_set_op_switch(conflict,
original_version,
target_version,
@@ -916,7 +894,7 @@ mark_directory_edited(struct dir_baton *
SVN_ERR(complete_conflict(db->edit_conflict, db->edit_baton,
db->local_abspath,
db->old_repos_relpath, db->old_revision,
- db->new_relpath,
+ db->new_repos_relpath,
svn_node_dir, svn_node_dir,
db->pool, scratch_pool));
SVN_ERR(svn_wc__db_op_mark_conflict(db->edit_baton->db,
@@ -950,7 +928,7 @@ mark_file_edited(struct file_baton *fb,
SVN_ERR(complete_conflict(fb->edit_conflict, fb->edit_baton,
fb->local_abspath, fb->old_repos_relpath,
- fb->old_revision, fb->new_relpath,
+ fb->old_revision, fb->new_repos_relpath,
svn_node_file, svn_node_file,
fb->pool, scratch_pool));
@@ -1230,10 +1208,27 @@ open_root(void *edit_baton,
eb->db, db->local_abspath,
db->pool, pool));
- if (conflict_ignored)
+ if (have_work)
{
- db->shadowed = TRUE;
+ SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL,
+ &db->old_revision,
+ &db->old_repos_relpath, NULL, NULL,
+ &db->changed_rev, &db->changed_date,
+ &db->changed_author,
+ &db->ambient_depth,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ eb->db, db->local_abspath,
+ db->pool, pool));
}
+ else
+ base_status = status;
+
+ SVN_ERR(calculate_repos_relpath(&db->new_repos_relpath, db->local_abspath,
+ db->old_repos_relpath, eb, NULL,
+ db->pool, pool));
+
+ if (conflict_ignored)
+ db->shadowed = TRUE;
else if (have_work)
{
const char *move_src_root_abspath;
@@ -1241,16 +1236,6 @@ open_root(void *edit_baton,
SVN_ERR(svn_wc__db_base_moved_to(NULL, NULL, &move_src_root_abspath,
NULL, eb->db, db->local_abspath,
pool, pool));
- if (move_src_root_abspath || *eb->target_basename == '\0')
- SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL,
- &db->old_revision,
- &db->old_repos_relpath, NULL, NULL,
- &db->changed_rev, &db->changed_date,
- &db->changed_author,
- &db->ambient_depth,
- NULL, NULL, NULL, NULL, NULL, NULL,
- eb->db, db->local_abspath,
- db->pool, pool));
if (move_src_root_abspath)
{
@@ -1273,7 +1258,8 @@ open_root(void *edit_baton,
SVN_ERR(complete_conflict(tree_conflict, eb,
move_src_root_abspath,
db->old_repos_relpath,
- db->old_revision, db->new_relpath,
+ db->old_revision,
+ db->new_repos_relpath,
svn_node_dir, svn_node_dir,
pool, pool));
SVN_ERR(svn_wc__db_op_mark_conflict(eb->db,
@@ -1290,8 +1276,6 @@ open_root(void *edit_baton,
db->shadowed = TRUE; /* Needed for the close_directory() on the root, to
make sure it doesn't use the ACTUAL tree */
}
- else
- base_status = status;
if (*eb->target_basename == '\0')
{
@@ -1310,7 +1294,7 @@ open_root(void *edit_baton,
SVN_ERR(svn_wc__db_temp_op_start_directory_update(eb->db,
db->local_abspath,
- db->new_relpath,
+ db->new_repos_relpath,
*eb->target_revision,
pool));
}
@@ -2003,6 +1987,8 @@ add_directory(const char *path,
SVN_ERR_ASSERT(! (copyfrom_path || SVN_IS_VALID_REVNUM(copyfrom_rev)));
SVN_ERR(make_dir_baton(&db, path, eb, pb, TRUE, pool));
+ SVN_ERR(calculate_repos_relpath(&db->new_repos_relpath, db->local_abspath,
+ NULL, eb, pb, db->pool, pool));
*child_baton = db;
if (db->skip_this)
@@ -2070,7 +2056,7 @@ add_directory(const char *path,
explicitly adds the node into the parent's node database. */
SVN_ERR(svn_wc__db_base_add_not_present_node(eb->db, db->local_abspath,
- db->new_relpath,
+ db->new_repos_relpath,
eb->repos_root,
eb->repos_uuid,
*eb->target_revision,
@@ -2179,7 +2165,7 @@ add_directory(const char *path,
because then we would not have received an add_directory.
*/
SVN_ERR(svn_wc__db_base_add_not_present_node(eb->db, db->local_abspath,
- db->new_relpath,
+ db->new_repos_relpath,
eb->repos_root,
eb->repos_uuid,
*eb->target_revision,
@@ -2281,14 +2267,14 @@ add_directory(const char *path,
if (tree_conflict)
SVN_ERR(complete_conflict(tree_conflict, eb, db->local_abspath,
db->old_repos_relpath, db->old_revision,
- db->new_relpath,
+ db->new_repos_relpath,
wc_kind,
svn_node_dir,
db->pool, pool));
SVN_ERR(svn_wc__db_base_add_incomplete_directory(
eb->db, db->local_abspath,
- db->new_relpath,
+ db->new_repos_relpath,
eb->repos_root,
eb->repos_uuid,
*eb->target_revision,
@@ -2417,6 +2403,10 @@ open_directory(const char *path,
db->was_incomplete = (base_status == svn_wc__db_status_incomplete);
+ SVN_ERR(calculate_repos_relpath(&db->new_repos_relpath, db->local_abspath,
+ db->old_repos_relpath, eb, pb,
+ db->pool, pool));
+
/* Is this path a conflict victim? */
if (db->shadowed)
conflicted = FALSE; /* Conflict applies to WORKING */
@@ -2476,7 +2466,7 @@ open_directory(const char *path,
/* Mark directory as being at target_revision and URL, but incomplete. */
SVN_ERR(svn_wc__db_temp_op_start_directory_update(eb->db, db->local_abspath,
- db->new_relpath,
+ db->new_repos_relpath,
*eb->target_revision,
pool));
@@ -2703,7 +2693,8 @@ close_directory(void *dir_baton,
/* Check if we should add some not-present markers before marking the
directory complete (Issue #3569) */
{
- apr_hash_t *new_children = svn_hash_gets(eb->dir_dirents, db->new_relpath);
+ apr_hash_t *new_children = svn_hash_gets(eb->dir_dirents,
+ db->new_repos_relpath);
if (new_children != NULL)
{
@@ -2759,7 +2750,7 @@ close_directory(void *dir_baton,
svn_error_clear(err);
- child_relpath = svn_relpath_join(db->new_relpath, child_name,
+ child_relpath = svn_relpath_join(db->new_repos_relpath, child_name,
iterpool);
SVN_ERR(svn_wc__db_base_add_not_present_node(eb->db,
@@ -2797,7 +2788,7 @@ close_directory(void *dir_baton,
svn_pool_clear(iterpool);
child_abspath = svn_dirent_join(db->local_abspath, child, iterpool);
- child_relpath = svn_dirent_join(db->new_relpath, child, iterpool);
+ child_relpath = svn_dirent_join(db->new_repos_relpath, child, iterpool);
SVN_ERR(svn_wc__db_base_add_not_present_node(eb->db,
child_abspath,
@@ -2873,7 +2864,7 @@ close_directory(void *dir_baton,
db->local_abspath,
db->old_repos_relpath,
db->old_revision,
- db->new_relpath,
+ db->new_repos_relpath,
svn_node_dir, svn_node_dir,
db->pool, scratch_pool));
@@ -2905,7 +2896,7 @@ close_directory(void *dir_baton,
SVN_ERR(svn_wc__db_base_add_directory(
eb->db, db->local_abspath,
eb->wcroot_abspath,
- db->new_relpath,
+ db->new_repos_relpath,
eb->repos_root, eb->repos_uuid,
*eb->target_revision,
props,
@@ -3094,7 +3085,7 @@ absent_node(const char *path,
{
const char *repos_relpath;
- repos_relpath = svn_relpath_join(pb->new_relpath, name, scratch_pool);
+ repos_relpath = svn_relpath_join(pb->new_repos_relpath, name, scratch_pool);
/* Insert an excluded node below the parent node to note that this child
is absent. (This puts it in the parent db if the child is obstructed) */
@@ -3159,6 +3150,8 @@ add_file(const char *path,
SVN_ERR_ASSERT(! (copyfrom_path || SVN_IS_VALID_REVNUM(copyfrom_rev)));
SVN_ERR(make_file_baton(&fb, pb, path, TRUE, pool));
+ SVN_ERR(calculate_repos_relpath(&fb->new_repos_relpath, fb->local_abspath,
+ NULL, eb, pb, fb->pool, pool));
*file_baton = fb;
if (fb->skip_this)
@@ -3437,7 +3430,7 @@ add_file(const char *path,
fb->local_abspath,
fb->old_repos_relpath,
fb->old_revision,
- fb->new_relpath,
+ fb->new_repos_relpath,
wc_kind,
svn_node_file,
fb->pool, scratch_pool));
@@ -3519,7 +3512,6 @@ open_file(const char *path,
/* Sanity check. */
- /* If replacing, make sure the .svn entry already exists. */
SVN_ERR(svn_wc__db_read_info(&status, &wc_kind, &fb->old_revision,
&fb->old_repos_relpath, NULL, NULL,
&fb->changed_rev, &fb->changed_date,
@@ -3541,6 +3533,10 @@ open_file(const char *path,
eb->db, fb->local_abspath,
fb->pool, scratch_pool));
+ SVN_ERR(calculate_repos_relpath(&fb->new_repos_relpath, fb->local_abspath,
+ fb->old_repos_relpath, eb, pb,
+ fb->pool, scratch_pool));
+
/* Is this path a conflict victim? */
if (fb->shadowed)
conflicted = FALSE; /* Conflict applies to WORKING */
@@ -3856,7 +3852,7 @@ change_file_prop(void *file_baton,
SVN_ERR(complete_conflict(fb->edit_conflict, fb->edit_baton,
fb->local_abspath, fb->old_repos_relpath,
- fb->old_revision, fb->new_relpath,
+ fb->old_revision, fb->new_repos_relpath,
svn_node_file, svn_node_file,
fb->pool, scratch_pool));
@@ -4326,8 +4322,8 @@ close_file(void *file_baton,
{
/* If we lose the lock, but not because we are switching to
another url, remove the state lock from the wc */
- if (! eb->switch_relpath
- || strcmp(fb->new_relpath, fb->old_repos_relpath) == 0)
+ if (! eb->switch_repos_relpath
+ || strcmp(fb->new_repos_relpath, fb->old_repos_relpath) == 0)
{
SVN_ERR_ASSERT(prop->value == NULL);
SVN_ERR(svn_wc__db_lock_remove(eb->db, fb->local_abspath,
@@ -4569,7 +4565,7 @@ close_file(void *file_baton,
fb->local_abspath,
fb->old_repos_relpath,
fb->old_revision,
- fb->new_relpath,
+ fb->new_repos_relpath,
svn_node_file, svn_node_file,
fb->pool, scratch_pool));
@@ -4598,7 +4594,7 @@ close_file(void *file_baton,
SVN_ERR(svn_wc__db_base_add_file(eb->db, fb->local_abspath,
eb->wcroot_abspath,
- fb->new_relpath,
+ fb->new_repos_relpath,
eb->repos_root, eb->repos_uuid,
*eb->target_revision,
new_base_props,
@@ -4733,7 +4729,7 @@ close_edit(void *edit_baton,
SVN_ERR(svn_wc__db_op_bump_revisions_post_update(eb->db,
eb->target_abspath,
eb->requested_depth,
- eb->switch_relpath,
+ eb->switch_repos_relpath,
eb->repos_root,
eb->repos_uuid,
*(eb->target_revision),
@@ -4860,9 +4856,11 @@ make_editor(svn_revnum_t *target_revisio
/* Get the anchor's repository root and uuid. The anchor must already exist
in BASE. */
- SVN_ERR(svn_wc__db_scan_base_repos(NULL, &repos_root, &repos_uuid,
- db, anchor_abspath,
- result_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, &repos_root,
+ &repos_uuid, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ db, anchor_abspath,
+ result_pool, scratch_pool));
/* With WC-NG we need a valid repository root */
SVN_ERR_ASSERT(repos_root != NULL && repos_uuid != NULL);
@@ -4890,10 +4888,10 @@ make_editor(svn_revnum_t *target_revisio
edit_pool, scratch_pool));
if (switch_url)
- eb->switch_relpath =
+ eb->switch_repos_relpath =
svn_uri_skip_ancestor(repos_root, switch_url, scratch_pool);
else
- eb->switch_relpath = NULL;
+ eb->switch_repos_relpath = NULL;
if (svn_path_is_empty(target_basename))
eb->target_abspath = eb->anchor_abspath;
@@ -4974,8 +4972,8 @@ make_editor(svn_revnum_t *target_revisio
apr_hash_t *dirents;
/* If we switch, we should look at the new relpath */
- if (eb->switch_relpath)
- dir_repos_relpath = eb->switch_relpath;
+ if (eb->switch_repos_relpath)
+ dir_repos_relpath = eb->switch_repos_relpath;
SVN_ERR(fetch_dirents_func(fetch_dirents_baton, &dirents,
repos_root, dir_repos_relpath,
@@ -5028,9 +5026,9 @@ make_editor(svn_revnum_t *target_revisio
apr_hash_t *dirents;
/* If we switch, we should look at the new relpath */
- if (eb->switch_relpath)
+ if (eb->switch_repos_relpath)
dir_repos_relpath = svn_relpath_join(
- eb->switch_relpath,
+ eb->switch_repos_relpath,
child_name, iterpool);
SVN_ERR(fetch_dirents_func(fetch_dirents_baton, &dirents,
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.c Thu Jan 9 09:31:10 2014
@@ -49,6 +49,7 @@
#include "workqueue.h"
#include "token-map.h"
+#include "private/svn_sorts_private.h"
#include "private/svn_sqlite.h"
#include "private/svn_skel.h"
#include "private/svn_wc_private.h"
@@ -10282,7 +10283,7 @@ db_read_inherited_props(apr_array_header
iprop_elt->prop_hash = node_props;
/* Build the output array in depth-first order. */
- svn_sort__array_insert(&iprop_elt, iprops, 0);
+ svn_sort__array_insert(iprops, &iprop_elt, 0);
}
}
}
@@ -10318,7 +10319,7 @@ db_read_inherited_props(apr_array_header
/* If we didn't filter everything then keep this iprop. */
if (apr_hash_count(cached_iprop->prop_hash))
- svn_sort__array_insert(&cached_iprop, iprops, 0);
+ svn_sort__array_insert(iprops, &cached_iprop, 0);
}
}
@@ -11845,39 +11846,6 @@ svn_wc__db_lock_remove(svn_wc__db_t *db,
return SVN_NO_ERROR;
}
-
-svn_error_t *
-svn_wc__db_scan_base_repos(const char **repos_relpath,
- const char **repos_root_url,
- const char **repos_uuid,
- svn_wc__db_t *db,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- svn_wc__db_wcroot_t *wcroot;
- const char *local_relpath;
- apr_int64_t repos_id;
-
- SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
-
- SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&wcroot, &local_relpath, db,
- local_abspath, scratch_pool, scratch_pool));
- VERIFY_USABLE_WCROOT(wcroot);
-
- SVN_ERR(svn_wc__db_base_get_info_internal(NULL, NULL, NULL,
- repos_relpath, &repos_id,
- NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL,
- wcroot, local_relpath,
- result_pool, scratch_pool));
- SVN_ERR(svn_wc__db_fetch_repos_info(repos_root_url, repos_uuid, wcroot->sdb,
- repos_id, result_pool));
-
- return SVN_NO_ERROR;
-}
-
-
/* A helper for scan_addition().
* Compute moved-from information for the node at LOCAL_RELPATH which
* has been determined as having been moved-here.
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.h?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db.h Thu Jan 9 09:31:10 2014
@@ -2622,30 +2622,6 @@ svn_wc__db_lock_remove(svn_wc__db_t *db,
@{
*/
-/* Read a BASE node's repository information.
-
- For the BASE node implied by LOCAL_ABSPATH, its location in the repository
- returned in *REPOS_ROOT_URL and *REPOS_UUID will be returned in
- *REPOS_RELPATH. Any of the OUT parameters may be NULL, indicating no
- interest in that piece of information.
-
- All returned data will be allocated in RESULT_POOL. All temporary
- allocations will be made in SCRATCH_POOL.
-
- ### Either delete this function and use _base_get_info instead, or
- ### add a 'revision' output to make a complete repository node location
- ### and rename to not say 'scan', because it doesn't.
-*/
-svn_error_t *
-svn_wc__db_scan_base_repos(const char **repos_relpath,
- const char **repos_root_url,
- const char **repos_uuid,
- svn_wc__db_t *db,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-
/* Scan upwards for information about a known addition to the WORKING tree.
IFF a node's status as returned by svn_wc__db_read_info() is
Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db_update_move.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db_update_move.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db_update_move.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_wc/wc_db_update_move.c Thu Jan 9 09:31:10 2014
@@ -89,6 +89,7 @@
#include "svn_sorts.h"
#include "private/svn_skel.h"
+#include "private/svn_sorts_private.h"
#include "private/svn_sqlite.h"
#include "private/svn_wc_private.h"
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/dav_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/dav_svn.h?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/dav_svn.h (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/dav_svn.h Thu Jan 9 09:31:10 2014
@@ -792,12 +792,10 @@ dav_svn__authz_read_func(dav_svn__authz_
default value for the error code.
*/
dav_error *
-dav_svn__new_error_tag(apr_pool_t *pool,
+dav_svn__new_error_svn(apr_pool_t *pool,
int status,
int error_id,
- const char *desc,
- const char *namespace,
- const char *tagname);
+ const char *desc);
/* A wrapper around mod_dav's dav_new_error, mod_dav_svn uses this
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/lock.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/lock.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/lock.c Thu Jan 9 09:31:10 2014
@@ -841,14 +841,14 @@ remove_lock(dav_lockdb *lockdb,
/* Sanity check: if the resource has no associated path in the fs,
then there's nothing to do. */
if (! resource->info->repos_path)
- return 0;
+ return NULL;
/* Another easy out: if an svn client sent a 'keep_locks' header
(typically in a DELETE request, as part of 'svn commit
--no-unlock'), then ignore dav_method_delete()'s attempt to
unconditionally remove the lock. */
if (info->keep_locks)
- return 0;
+ return NULL;
/* If the resource's fs path is unreadable, we don't allow a lock to
be removed from it. */
@@ -908,10 +908,41 @@ remove_lock(dav_lockdb *lockdb,
resource->info->r->pool));
}
- return 0;
+ return NULL;
+}
+
+static dav_error *
+remove_lock_svn_output(dav_lockdb *lockdb,
+ const dav_resource *resource,
+ const dav_locktoken *locktoken)
+{
+ dav_error *derr = remove_lock(lockdb, resource, locktoken);
+ int status;
+
+ if (!derr
+ || !resource->info->repos
+ || !resource->info->repos->is_svn_client
+ || (strcmp(lockdb->info->r->method, "UNLOCK") != 0))
+ return derr;
+
+ /* Ok, we have a nice error chain but mod_dav doesn't offer us a way to
+ present it to the client as it will only use the status code for
+ generating a standard error...
+
+ Luckily the unlock processing for the "UNLOCK" method is very simple:
+ call this function and return the result.
+
+ That allows us to just force a response and tell httpd that we are done */
+ status = dav_svn__error_response_tag(lockdb->info->r, derr);
+
+ /* status = DONE */
+
+ /* And push an error that will make mod_dav just report that it is done */
+ return dav_push_error(resource->pool, status, derr->error_id, NULL, derr);
}
+
/*
** Refresh all locks, found on the specified resource, which has a
** locktoken in the provided list.
@@ -1017,7 +1048,7 @@ const dav_hooks_locks dav_svn__hooks_loc
find_lock,
has_locks,
append_locks,
- remove_lock,
+ remove_lock_svn_output,
refresh_locks,
NULL,
NULL /* hook structure context */
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/deleted-rev.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/deleted-rev.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/deleted-rev.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/deleted-rev.c Thu Jan 9 09:31:10 2014
@@ -58,12 +58,10 @@ dav_svn__get_deleted_rev_report(const da
/* Sanity check. */
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have "
- "certain required elements.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "certain required elements");
for (child = doc->root->first_child; child != NULL; child = child->next)
{
@@ -101,10 +99,8 @@ dav_svn__get_deleted_rev_report(const da
&& SVN_IS_VALID_REVNUM(peg_rev)
&& SVN_IS_VALID_REVNUM(end_rev)))
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
- "Not all parameters passed.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
+ "Not all parameters passed");
}
/* Do what we actually came here for: Find the rev abs_path was deleted. */
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/file-revs.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/file-revs.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/file-revs.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/file-revs.c Thu Jan 9 09:31:10 2014
@@ -259,12 +259,10 @@ dav_svn__file_revs_report(const dav_reso
in this namespace, so is this necessary at all? */
if (ns == -1)
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have "
- "certain required elements.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "certain required elements");
}
/* Get request information. */
@@ -299,10 +297,8 @@ dav_svn__file_revs_report(const dav_reso
/* Check that all parameters are present and valid. */
if (! abs_path)
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
- "Not all parameters passed.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
+ "Not all parameters passed");
frb.bb = apr_brigade_create(resource->pool,
output->c->bucket_alloc);
@@ -328,7 +324,7 @@ dav_svn__file_revs_report(const dav_reso
right then, so r->status remains 0, hence HTTP status 200
would be misleadingly returned. */
return (dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
- serr->message, resource->pool));
+ NULL, resource->pool));
}
if ((serr = maybe_send_header(&frb)))
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-location-segments.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-location-segments.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-location-segments.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-location-segments.c Thu Jan 9 09:31:10 2014
@@ -126,12 +126,10 @@ dav_svn__get_location_segments_report(co
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have "
- "certain required elements.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "certain required elements");
}
/* Gather the parameters. */
@@ -174,26 +172,20 @@ dav_svn__get_location_segments_report(co
/* Check that all parameters are present and valid. */
if (! abs_path)
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
- "Not all parameters passed.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
+ "Not all parameters passed");
if (SVN_IS_VALID_REVNUM(start_rev)
&& SVN_IS_VALID_REVNUM(end_rev)
&& (end_rev > start_rev))
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"End revision must not be younger than "
- "start revision",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "start revision");
if (SVN_IS_VALID_REVNUM(peg_revision)
&& SVN_IS_VALID_REVNUM(start_rev)
&& (start_rev > peg_revision))
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"Start revision must not be younger than "
- "peg revision",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "peg revision");
/* Build an authz read baton. */
arb.r = resource->info->r;
@@ -214,7 +206,7 @@ dav_svn__get_location_segments_report(co
dav_svn__authz_read_func(&arb),
&arb, resource->pool)))
{
- derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, serr->message,
+ derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, NULL,
resource->pool);
goto cleanup;
}
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-locations.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-locations.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-locations.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/get-locations.c Thu Jan 9 09:31:10 2014
@@ -109,12 +109,10 @@ dav_svn__get_locations_report(const dav_
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have "
- "certain required elements.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "certain required elements");
}
/* Gather the parameters. */
@@ -151,10 +149,8 @@ dav_svn__get_locations_report(const dav_
/* Check that all parameters are present and valid. */
if (! (abs_path && SVN_IS_VALID_REVNUM(peg_revision)))
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
- "Not all parameters passed.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
+ "Not all parameters passed");
/* Build an authz read baton */
arb.r = resource->info->r;
@@ -168,8 +164,8 @@ dav_svn__get_locations_report(const dav_
if (serr)
{
- return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
- serr->message, resource->pool);
+ return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR, NULL,
+ resource->pool);
}
bb = apr_brigade_create(resource->pool, output->c->bucket_alloc);
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/inherited-props.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/inherited-props.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/inherited-props.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/inherited-props.c Thu Jan 9 09:31:10 2014
@@ -66,12 +66,10 @@ dav_svn__get_inherited_props_report(cons
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have "
- "certain required elements.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "certain required elements");
}
iterpool = svn_pool_create(resource->pool);
@@ -118,7 +116,7 @@ dav_svn__get_inherited_props_report(cons
&arb, resource->pool, iterpool);
if (serr)
{
- derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, serr->message,
+ derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, NULL,
resource->pool);
goto cleanup;
}
@@ -130,7 +128,7 @@ dav_svn__get_inherited_props_report(cons
"xmlns:D=\"DAV:\">" DEBUG_CR);
if (serr)
{
- derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, serr->message,
+ derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, NULL,
resource->pool);
goto cleanup;
}
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/log.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/log.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/log.c Thu Jan 9 09:31:10 2014
@@ -327,12 +327,10 @@ dav_svn__log_report(const dav_resource *
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have "
- "certain required elements.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "certain required elements");
}
/* If this is still FALSE after the loop, we haven't seen either of
@@ -476,7 +474,7 @@ dav_svn__log_report(const dav_resource *
resource->pool);
if (serr)
{
- derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, serr->message,
+ derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, NULL,
resource->pool);
goto cleanup;
}
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/mergeinfo.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/mergeinfo.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/mergeinfo.c Thu Jan 9 09:31:10 2014
@@ -70,12 +70,10 @@ dav_svn__get_mergeinfo_report(const dav_
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have "
- "certain required elements.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "certain required elements");
}
for (child = doc->root->first_child; child != NULL; child = child->next)
@@ -131,7 +129,7 @@ dav_svn__get_mergeinfo_report(const dav_
&arb, resource->pool);
if (serr)
{
- derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, serr->message,
+ derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, NULL,
resource->pool);
goto cleanup;
}
@@ -141,7 +139,7 @@ dav_svn__get_mergeinfo_report(const dav_
resource->pool);
if (serr)
{
- derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, serr->message,
+ derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, NULL,
resource->pool);
goto cleanup;
}
@@ -159,7 +157,7 @@ dav_svn__get_mergeinfo_report(const dav_
"xmlns:D=\"DAV:\">" DEBUG_CR);
if (serr)
{
- derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, serr->message,
+ derr = dav_svn__convert_err(serr, HTTP_BAD_REQUEST, NULL,
resource->pool);
goto cleanup;
}
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/replay.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/replay.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/replay.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/replay.c Thu Jan 9 09:31:10 2014
@@ -401,13 +401,12 @@ make_editor(const svn_delta_editor_t **e
static dav_error *
malformed_element_error(const char *tagname, apr_pool_t *pool)
{
- return dav_svn__new_error_tag(pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(pool, HTTP_BAD_REQUEST, 0,
apr_pstrcat(pool,
"The request's '", tagname,
"' element is malformed; there "
"is a problem with the client.",
- SVN_VA_NULL),
- SVN_DAV_ERROR_NAMESPACE, SVN_DAV_ERROR_TAG);
+ SVN_VA_NULL));
}
@@ -456,13 +455,11 @@ dav_svn__replay_report(const dav_resourc
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have an "
"svn:revision element. That element is "
- "required.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "required");
for (child = doc->root->first_child; child != NULL; child = child->next)
{
@@ -521,16 +518,14 @@ dav_svn__replay_report(const dav_resourc
}
if (! SVN_IS_VALID_REVNUM(rev))
- return dav_svn__new_error_tag
+ return dav_svn__new_error_svn
(resource->pool, HTTP_BAD_REQUEST, 0,
- "Request was missing the revision argument.",
- SVN_DAV_ERROR_NAMESPACE, SVN_DAV_ERROR_TAG);
+ "Request was missing the revision argument");
if (! SVN_IS_VALID_REVNUM(low_water_mark))
- return dav_svn__new_error_tag
+ return dav_svn__new_error_svn
(resource->pool, HTTP_BAD_REQUEST, 0,
- "Request was missing the low-water-mark argument.",
- SVN_DAV_ERROR_NAMESPACE, SVN_DAV_ERROR_TAG);
+ "Request was missing the low-water-mark argument");
if (! base_dir)
base_dir = "";
Modified: subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/update.c?rev=1556765&r1=1556764&r2=1556765&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/update.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/mod_dav_svn/reports/update.c Thu Jan 9 09:31:10 2014
@@ -914,8 +914,7 @@ malformed_element_error(const char *tagn
"' element is malformed; there "
"is a problem with the client.",
SVN_VA_NULL);
- return dav_svn__new_error_tag(pool, HTTP_BAD_REQUEST, 0, errstr,
- SVN_DAV_ERROR_NAMESPACE, SVN_DAV_ERROR_TAG);
+ return dav_svn__new_error_svn(pool, HTTP_BAD_REQUEST, 0, errstr);
}
@@ -999,22 +998,18 @@ dav_svn__update_report(const dav_resourc
if ((resource->info->restype != DAV_SVN_RESTYPE_VCC)
&& (resource->info->restype != DAV_SVN_RESTYPE_ME))
- return dav_svn__new_error_tag(resource->pool, HTTP_CONFLICT, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_CONFLICT, 0,
"This report can only be run against "
- "a VCC or root-stub URI.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "a VCC or root-stub URI");
ns = dav_svn__find_ns(doc->namespaces, SVN_XML_NAMESPACE);
if (ns == -1)
{
- return dav_svn__new_error_tag(resource->pool, HTTP_BAD_REQUEST, 0,
+ return dav_svn__new_error_svn(resource->pool, HTTP_BAD_REQUEST, 0,
"The request does not contain the 'svn:' "
"namespace, so it is not going to have an "
"svn:target-revision element. That element "
- "is required.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "is required");
}
/* SVNAllowBulkUpdates On/Prefer: server configuration permits bulk updates
@@ -1200,12 +1195,10 @@ dav_svn__update_report(const dav_resourc
sending a style of report that we no longer allow. */
if (! src_path)
{
- return dav_svn__new_error_tag
+ return dav_svn__new_error_svn
(resource->pool, HTTP_BAD_REQUEST, 0,
"The request did not contain the '<src-path>' element.\n"
- "This may indicate that your client is too old.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
+ "This may indicate that your client is too old");
}
uc.svndiff_version = resource->info->svndiff_version;