Author: julianfoad
Date: Mon Apr 13 13:27:51 2015
New Revision: 1673180
URL: http://svn.apache.org/r1673180
Log:
On the 'move-tracking-2' branch: catch up to trunk@1673179.
Modified:
subversion/branches/move-tracking-2/ (props changed)
subversion/branches/move-tracking-2/subversion/ (props changed)
subversion/branches/move-tracking-2/subversion/include/svn_fs.h
subversion/branches/move-tracking-2/subversion/include/svn_repos.h
subversion/branches/move-tracking-2/subversion/include/svn_wc.h
subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c
subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.h
subversion/branches/move-tracking-2/subversion/libsvn_fs_base/tree.c
subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/tree.c
subversion/branches/move-tracking-2/subversion/libsvn_fs_x/ (props
changed)
subversion/branches/move-tracking-2/subversion/libsvn_fs_x/tree.c
subversion/branches/move-tracking-2/subversion/libsvn_ra_local/ra_plugin.c
subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/util.c
subversion/branches/move-tracking-2/subversion/libsvn_repos/repos.c
subversion/branches/move-tracking-2/subversion/libsvn_subr/x509parse.c
subversion/branches/move-tracking-2/subversion/libsvn_wc/deprecated.c
subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-metadata.sql
subversion/branches/move-tracking-2/subversion/mod_dav_svn/liveprops.c
subversion/branches/move-tracking-2/subversion/po/de.po
subversion/branches/move-tracking-2/subversion/svn/auth-cmd.c
subversion/branches/move-tracking-2/subversion/svn/list-cmd.c
subversion/branches/move-tracking-2/subversion/svn/status-cmd.c
subversion/branches/move-tracking-2/subversion/svnserve/serve.c
subversion/branches/move-tracking-2/subversion/tests/cmdline/commit_tests.py
subversion/branches/move-tracking-2/subversion/tests/libsvn_ra/ra-test.c
subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/wc-queries-test.c
Propchange: subversion/branches/move-tracking-2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 13:27:51 2015
@@ -88,4 +88,4 @@
/subversion/branches/verify-at-commit:1462039-1462408
/subversion/branches/verify-keep-going:1439280-1546110
/subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1606692-1671790
+/subversion/trunk:1606692-1673179
Propchange: subversion/branches/move-tracking-2/subversion/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 13:27:51 2015
@@ -82,4 +82,4 @@
/subversion/branches/verify-at-commit/subversion:1462039-1462408
/subversion/branches/verify-keep-going/subversion:1439280-1546110
/subversion/branches/wc-collate-path/subversion:1402685-1480384
-/subversion/trunk/subversion:1606692-1671790
+/subversion/trunk/subversion:1606692-1673179
Modified: subversion/branches/move-tracking-2/subversion/include/svn_fs.h
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_fs.h?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_fs.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_fs.h Mon Apr 13
13:27:51 2015
@@ -1820,6 +1820,18 @@ svn_fs_node_proplist(apr_hash_t **table_
const char *path,
apr_pool_t *pool);
+/** Set @a *has_props to TRUE if the node @a path in @a root has properties
+ * and to FALSE if it doesn't have properties. Perform temporary allocations
+ * in @a scratch_pool.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_fs_node_has_props(svn_boolean_t *has_props,
+ svn_fs_root_t *root,
+ const char *path,
+ apr_pool_t *scratch_pool);
+
/** Change a node's property's value, or add/delete a property.
*
Modified: subversion/branches/move-tracking-2/subversion/include/svn_repos.h
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_repos.h?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_repos.h
(original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_repos.h Mon Apr
13 13:27:51 2015
@@ -250,7 +250,7 @@ typedef enum svn_repos_notify_action_t
svn_repos_notify_hotcopy_rev_range
} svn_repos_notify_action_t;
-/** The type of error occurring.
+/** The type of warning occurring.
*
* @since New in 1.7.
*/
Modified: subversion/branches/move-tracking-2/subversion/include/svn_wc.h
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_wc.h?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_wc.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_wc.h Mon Apr 13
13:27:51 2015
@@ -1911,8 +1911,9 @@ typedef struct svn_wc_conflict_descripti
/** The path that is in conflict (for a tree conflict, it is the victim) */
const char *path;
- /** The node type of the path being operated on (for a tree conflict,
- * ### which version?) */
+ /** The local node type of the path being operated on (for a tree conflict,
+ * this specifies the local node kind, which may be (and typically is)
+ * different than the left and right kind) */
svn_node_kind_t node_kind;
/** What sort of conflict are we describing? */
@@ -2063,7 +2064,7 @@ svn_wc_conflict_description_create_prop(
*
* Set the @c local_abspath field of the created struct to @a local_abspath
* (which must be an absolute path), the @c kind field to
- * #svn_wc_conflict_kind_tree, the @c local_node_kind to @a local_node_kind,
+ * #svn_wc_conflict_kind_tree, the @c node_kind to @a node_kind,
* the @c operation to @a operation, the @c src_left_version field to
* @a src_left_version, and the @c src_right_version field to
* @a src_right_version.
@@ -2104,7 +2105,7 @@ svn_wc_conflict_description_create_tree(
/** Return a duplicate of @a conflict, allocated in @a result_pool.
* A deep copy of all members will be made.
*
- * @since New in 1.7.
+ * @since New in 1.9.
*/
svn_wc_conflict_description2_t *
svn_wc_conflict_description2_dup(
@@ -2131,8 +2132,11 @@ svn_wc__conflict_description2_dup(
*/
typedef enum svn_wc_conflict_choice_t
{
- /** Undefined; for internal use only.
- This value is never returned in svn_wc_conflict_result_t.
+ /** Undefined; for private use only.
+ This value must never be returned in svn_wc_conflict_result_t,
+ but a separate value, unequal to all other pre-defined values may
+ be useful in conflict resolver implementations to signal that no
+ choice is made yet.
* @since New in 1.9
*/
svn_wc_conflict_choose_undefined = -1,
@@ -4657,6 +4661,9 @@ svn_wc_delete(const char *path,
* If @a local_abspath does not exist as file, directory or symlink, return
* #SVN_ERR_WC_PATH_NOT_FOUND.
*
+ * If @a notify_func is non-NULL, invoke it with @a notify_baton to report
+ * the item being added.
+ *
* ### TODO: Split into add_dir, add_file, add_symlink?
*
* @since New in 1.9.
@@ -4672,7 +4679,7 @@ svn_wc_add_from_disk3(svn_wc_context_t *
/**
* Similar to svn_wc_add_from_disk3(), but always passes FALSE for
- * @a skip_som_prop_canon
+ * @a skip_checks
*
* @since New in 1.8.
* @deprecated Provided for backward compatibility with the 1.8 API.
@@ -7304,6 +7311,12 @@ svn_wc_get_pristine_copy_path(const char
* points during the operation. If it returns an error (typically
* #SVN_ERR_CANCELLED), return that error immediately.
*
+ * If @a notify_func is non-NULL, invoke it with @a notify_baton to report
+ * the progress of the operation.
+ *
+ * @note In 1.9, @a notify_func does not get called at all. This may change
+ * in later releases.
+ *
* @since New in 1.9.
*/
svn_error_t *
Modified: subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c Mon
Apr 13 13:27:51 2015
@@ -1196,6 +1196,16 @@ svn_fs_node_proplist(apr_hash_t **table_
}
svn_error_t *
+svn_fs_node_has_props(svn_boolean_t *has_props,
+ svn_fs_root_t *root,
+ const char *path,
+ apr_pool_t *scratch_pool)
+{
+ return svn_error_trace(root->vtable->node_has_props(has_props, root, path,
+ scratch_pool));
+}
+
+svn_error_t *
svn_fs_change_node_prop(svn_fs_root_t *root, const char *path,
const char *name, const svn_string_t *value,
apr_pool_t *pool)
Modified: subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.h
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.h?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.h
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.h Mon
Apr 13 13:27:51 2015
@@ -346,6 +346,8 @@ typedef struct root_vtable_t
apr_pool_t *pool);
svn_error_t *(*node_proplist)(apr_hash_t **table_p, svn_fs_root_t *root,
const char *path, apr_pool_t *pool);
+ svn_error_t *(*node_has_props)(svn_boolean_t *has_props, svn_fs_root_t *root,
+ const char *path, apr_pool_t *scratch_pool);
svn_error_t *(*change_node_prop)(svn_fs_root_t *root, const char *path,
const char *name,
const svn_string_t *value,
Modified: subversion/branches/move-tracking-2/subversion/libsvn_fs_base/tree.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_fs_base/tree.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_fs_base/tree.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_fs_base/tree.c Mon
Apr 13 13:27:51 2015
@@ -1285,6 +1285,21 @@ base_node_proplist(apr_hash_t **table_p,
return SVN_NO_ERROR;
}
+static svn_error_t *
+base_node_has_props(svn_boolean_t *has_props,
+ svn_fs_root_t *root,
+ const char *path,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *props;
+
+ SVN_ERR(base_node_proplist(&props, root, path, scratch_pool));
+
+ *has_props = (0 < apr_hash_count(props));
+
+ return SVN_NO_ERROR;
+}
+
struct change_node_prop_args {
svn_fs_root_t *root;
@@ -5492,6 +5507,7 @@ static root_vtable_t root_vtable = {
base_closest_copy,
base_node_prop,
base_node_proplist,
+ base_node_has_props,
base_change_node_prop,
base_props_changed,
base_dir_entries,
Modified: subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/tree.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/tree.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/tree.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/tree.c Mon Apr
13 13:27:51 2015
@@ -1515,6 +1515,20 @@ fs_node_proplist(apr_hash_t **table_p,
return SVN_NO_ERROR;
}
+static svn_error_t *
+fs_node_has_props(svn_boolean_t *has_props,
+ svn_fs_root_t *root,
+ const char *path,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *props;
+
+ SVN_ERR(fs_node_proplist(&props, root, path, scratch_pool));
+
+ *has_props = (0 < apr_hash_count(props));
+
+ return SVN_NO_ERROR;
+}
static svn_error_t *
increment_mergeinfo_up_tree(parent_path_t *pp,
@@ -4238,6 +4252,7 @@ static root_vtable_t root_vtable = {
fs_closest_copy,
fs_node_prop,
fs_node_proplist,
+ fs_node_has_props,
fs_change_node_prop,
fs_props_changed,
fs_dir_entries,
Propchange: subversion/branches/move-tracking-2/subversion/libsvn_fs_x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 13:27:51 2015
@@ -90,4 +90,4 @@
/subversion/branches/verify-keep-going/subversion/libsvn_fs_x:1439280-1492639,1546002-1546110
/subversion/branches/wc-collate-path/subversion/libsvn_fs_x:1402685-1480384
/subversion/trunk/subversion/libsvn_fs_fs:1415133-1596500,1596567,1597414,1597989,1598273,1599140,1600872,1601633,1603485-1603487,1603499,1603605,1604128,1604188,1604413-1604414,1604416-1604417,1604421,1604442,1604700,1604717,1604720,1604726,1604755,1604794,1604802,1604824,1604836,1604844,1604902-1604903,1604911,1604925,1604933,1604947,1605059-1605060,1605064-1605065,1605068,1605071-1605073,1605075,1605123,1605188-1605189,1605191,1605197,1605444,1605633,1606132,1606142,1606144,1606514,1606526,1606528,1606551,1606554,1606564,1606598-1606599,1606656,1606658,1606662,1606744,1606840,1607085,1607572,1612407,1612810,1613339,1613872,1614611,1615348,1615351-1615352,1615356,1616338-1616339,1616613,1617586,1617688,1618138,1618151,1618153,1618226,1618641,1618653,1618662,1619068,1619358,1619413,1619769,1619774,1620602,1620909,1620912,1620928,1620930,1621275,1621635,1622931,1622937,1622942,1622946,1622959-1622960,1622963,1622987,1623007,1623368,1623373,1623377,1623379,1623381,1623398,1623402,162
4011,1624265,1624512,1626246,1626871,1626873,1626886,1627497-1627498,1627502,1627947-1627949,1627966,1628083,1628093,1628158-1628159,1628161,1628392-1628393,1628415,1628427,1628676,1628738,1628762,1628764,1629854-1629855,1629857,1629865,1629873,1629875,1629879,1630067,1630070,1631049-1631051,1631075,1631115,1631171,1631180,1631185-1631186,1631196-1631197,1631239-1631240,1631548,1631550,1631563,1631567,1631588,1631598,1632646,1632776,1632849,1632851-1632853,1632856-1632857,1632868,1632908,1632926,1633232,1633617-1633618,1634872,1634875,1634879-1634880,1634920,1636478,1636483,1636629,1636644,1637184,1637186,1637330,1637358,1637363,1637393,1639319,1639322,1639335,1639348,1639352,1639355,1639358,1639414,1639419,1639426,1639430,1639436,1639440,1639549,1640061-1640062,1640197,1640915,1640966,1641013,1643139,1643233,1645567,1646021,1646712,1646716,1647537,1647540-1647541,1647820,1647905,1648230,1648238,1648241-1648243,1648253,1648272,1648532,1648537-1648539,1648542,1648591,1648612,1653608,
1658482
-/subversion/trunk/subversion/libsvn_fs_x:1414756-1509914,1606692-1671790
+/subversion/trunk/subversion/libsvn_fs_x:1414756-1509914,1606692-1673179
Modified: subversion/branches/move-tracking-2/subversion/libsvn_fs_x/tree.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_fs_x/tree.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_fs_x/tree.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_fs_x/tree.c Mon Apr
13 13:27:51 2015
@@ -1500,6 +1500,20 @@ x_node_proplist(apr_hash_t **table_p,
return SVN_NO_ERROR;
}
+static svn_error_t *
+x_node_has_props(svn_boolean_t *has_props,
+ svn_fs_root_t *root,
+ const char *path,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *props;
+
+ SVN_ERR(x_node_proplist(&props, root, path, scratch_pool));
+
+ *has_props = (0 < apr_hash_count(props));
+
+ return SVN_NO_ERROR;
+}
static svn_error_t *
increment_mergeinfo_up_tree(parent_path_t *pp,
@@ -4214,6 +4228,7 @@ static root_vtable_t root_vtable = {
x_closest_copy,
x_node_prop,
x_node_proplist,
+ x_node_has_props,
x_change_node_prop,
x_props_changed,
x_dir_entries,
Modified:
subversion/branches/move-tracking-2/subversion/libsvn_ra_local/ra_plugin.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_ra_local/ra_plugin.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_ra_local/ra_plugin.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_ra_local/ra_plugin.c
Mon Apr 13 13:27:51 2015
@@ -1509,7 +1509,6 @@ svn_ra_local__get_dir(svn_ra_session_t *
apr_hash_t *entries;
apr_hash_index_t *hi;
svn_ra_local__session_baton_t *sess = session->priv;
- apr_pool_t *subpool;
const char *abs_path = svn_fspath__join(sess->fs_path->data, path, pool);
/* Open the revision's root. */
@@ -1525,29 +1524,28 @@ svn_ra_local__get_dir(svn_ra_session_t *
if (dirents)
{
+ apr_pool_t *iterpool = svn_pool_create(pool);
/* Get the dir's entries. */
SVN_ERR(svn_fs_dir_entries(&entries, root, abs_path, pool));
/* Loop over the fs dirents, and build a hash of general
svn_dirent_t's. */
*dirents = apr_hash_make(pool);
- subpool = svn_pool_create(pool);
for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
{
const void *key;
void *val;
- apr_hash_t *prophash;
const char *datestring, *entryname, *fullpath;
svn_fs_dirent_t *fs_entry;
svn_dirent_t *entry = svn_dirent_create(pool);
- svn_pool_clear(subpool);
+ svn_pool_clear(iterpool);
apr_hash_this(hi, &key, NULL, &val);
entryname = (const char *) key;
fs_entry = (svn_fs_dirent_t *) val;
- fullpath = svn_dirent_join(abs_path, entryname, subpool);
+ fullpath = svn_dirent_join(abs_path, entryname, iterpool);
if (dirent_fields & SVN_DIRENT_KIND)
{
@@ -1562,15 +1560,15 @@ svn_ra_local__get_dir(svn_ra_session_t *
entry->size = 0;
else
SVN_ERR(svn_fs_file_length(&(entry->size), root,
- fullpath, subpool));
+ fullpath, iterpool));
}
if (dirent_fields & SVN_DIRENT_HAS_PROPS)
{
/* has_props? */
- SVN_ERR(svn_fs_node_proplist(&prophash, root, fullpath,
- subpool));
- entry->has_props = (apr_hash_count(prophash) != 0);
+ SVN_ERR(svn_fs_node_has_props(&entry->has_props,
+ root, fullpath,
+ iterpool));
}
if ((dirent_fields & SVN_DIRENT_TIME)
@@ -1581,7 +1579,7 @@ svn_ra_local__get_dir(svn_ra_session_t *
SVN_ERR(svn_repos_get_committed_info(&(entry->created_rev),
&datestring,
&(entry->last_author),
- root, fullpath, subpool));
+ root, fullpath, iterpool));
if (datestring)
SVN_ERR(svn_time_from_cstring(&(entry->time), datestring,
pool));
@@ -1592,7 +1590,7 @@ svn_ra_local__get_dir(svn_ra_session_t *
/* Store. */
svn_hash_sets(*dirents, entryname, entry);
}
- svn_pool_destroy(subpool);
+ svn_pool_destroy(iterpool);
}
/* Handle props if requested. */
Modified: subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/util.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/util.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/util.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/util.c Mon
Apr 13 13:27:51 2015
@@ -1107,7 +1107,9 @@ svn_ra_serf__expect_empty_body(serf_requ
hdrs = serf_bucket_response_get_headers(response);
val = serf_bucket_headers_get(hdrs, "Content-Type");
- if (val && strncasecmp(val, "text/xml", sizeof("text/xml") - 1) == 0)
+ if (val
+ && (handler->sline.code < 200 || handler->sline.code >= 300)
+ && strncasecmp(val, "text/xml", sizeof("text/xml") - 1) == 0)
{
svn_ra_serf__server_error_t *server_err;
@@ -1120,7 +1122,7 @@ svn_ra_serf__expect_empty_body(serf_requ
}
else
{
- /* The body was not text/xml, so we don't know what to do with it.
+ /* The body was not text/xml, or we got a success code.
Toss anything that arrives. */
handler->discard_body = TRUE;
}
Modified: subversion/branches/move-tracking-2/subversion/libsvn_repos/repos.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_repos/repos.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_repos/repos.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_repos/repos.c Mon Apr
13 13:27:51 2015
@@ -2083,9 +2083,7 @@ svn_repos_stat(svn_dirent_t **dirent,
if (kind == svn_node_file)
SVN_ERR(svn_fs_file_length(&(ent->size), root, path, pool));
- SVN_ERR(svn_fs_node_proplist(&prophash, root, path, pool));
- if (apr_hash_count(prophash) > 0)
- ent->has_props = TRUE;
+ SVN_ERR(svn_fs_node_has_props(&ent->has_props, root, path, pool));
SVN_ERR(svn_repos_get_committed_info(&(ent->created_rev),
&datestring,
Modified: subversion/branches/move-tracking-2/subversion/libsvn_subr/x509parse.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_subr/x509parse.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_subr/x509parse.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_subr/x509parse.c Mon
Apr 13 13:27:51 2015
@@ -685,6 +685,8 @@ x509_get_ext(apr_array_header_t *dnsname
*p += len;
continue;
}
+
+ return svn_error_trace(err);
}
else
{
@@ -1052,7 +1054,7 @@ svn_x509_parse_cert(svn_x509_certinfo_t
*/
err = asn1_get_tag(&p, end, &len, ASN1_CONSTRUCTED | ASN1_SEQUENCE);
if (err)
- return svn_error_create(SVN_ERR_X509_CERT_INVALID_FORMAT, NULL, NULL);
+ return svn_error_create(SVN_ERR_X509_CERT_INVALID_FORMAT, err, NULL);
if (len != (end - p))
{
Modified: subversion/branches/move-tracking-2/subversion/libsvn_wc/deprecated.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_wc/deprecated.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_wc/deprecated.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_wc/deprecated.c Mon
Apr 13 13:27:51 2015
@@ -948,12 +948,12 @@ svn_wc_delete(const char *path,
svn_error_t *
svn_wc_add_from_disk2(svn_wc_context_t *wc_ctx,
const char *local_abspath,
- const apr_hash_t *props,
+ const apr_hash_t *props,
svn_wc_notify_func2_t notify_func,
void *notify_baton,
apr_pool_t *scratch_pool)
{
- SVN_ERR(svn_wc_add_from_disk3(wc_ctx, local_abspath, NULL, FALSE,
+ SVN_ERR(svn_wc_add_from_disk3(wc_ctx, local_abspath, props, FALSE,
notify_func, notify_baton, scratch_pool));
return SVN_NO_ERROR;
}
Modified:
subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-metadata.sql
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-metadata.sql?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-metadata.sql
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-metadata.sql
Mon Apr 13 13:27:51 2015
@@ -619,6 +619,11 @@ INSERT OR REPLACE INTO sqlite_stat1(tbl,
INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1', '100 100 1');
+INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+ ('EXTERNALS','sqlite_autoindex_EXTERNALS_1', '100 100 1');
+INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+ ('EXTERNALS','I_EXTERNALS_DEFINED', '100 100 3 1');
+
/* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is
a INTEGER PRIMARY KEY AUTOINCREMENT table */
Modified: subversion/branches/move-tracking-2/subversion/mod_dav_svn/liveprops.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/mod_dav_svn/liveprops.c?rev=1673180&r1=1673179&r2=1673180&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/mod_dav_svn/liveprops.c
(original)
+++ subversion/branches/move-tracking-2/subversion/mod_dav_svn/liveprops.c Mon
Apr 13 13:27:51 2015
@@ -787,30 +787,58 @@ insert_prop_internal(const dav_resource
case SVN_PROPID_deadprop_count:
{
- unsigned int propcount;
- apr_hash_t *proplist;
-
if (resource->type != DAV_RESOURCE_TYPE_REGULAR)
return DAV_PROP_INSERT_NOTSUPP;
- serr = svn_fs_node_proplist(&proplist,
- resource->info->root.root,
- resource->info->repos_path, scratch_pool);
- if (serr != NULL)
+ if (resource->info->repos->is_svn_client)
{
- ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
- resource->info->r,
- "Can't fetch proplist of '%s': "
- "%s",
- resource->info->repos_path,
- serr->message);
- svn_error_clear(serr);
- value = error_value;
- break;
+ svn_boolean_t has_props;
+ /* Retrieving the actual properties is quite expensive while
+ svn clients only want to know if there are properties, and
+ in many cases aren't interested at all (see r1673153) */
+ serr = svn_fs_node_has_props(&has_props,
+ resource->info->root.root,
+ resource->info->repos_path,
+ scratch_pool);
+
+ if (serr != NULL)
+ {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
+ resource->info->r,
+ "Can't fetch has props of '%s': "
+ "%s",
+ resource->info->repos_path,
+ serr->message);
+ svn_error_clear(serr);
+ value = error_value;
+ break;
+ }
+
+ value = has_props ? "99" /* Magic (undocumented) value */ : "0";
}
+ else
+ {
+ unsigned int propcount;
+ apr_hash_t *proplist;
+ serr = svn_fs_node_proplist(&proplist,
+ resource->info->root.root,
+ resource->info->repos_path,
scratch_pool);
+ if (serr != NULL)
+ {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
+ resource->info->r,
+ "Can't fetch proplist of '%s': "
+ "%s",
+ resource->info->repos_path,
+ serr->message);
+ svn_error_clear(serr);
+ value = error_value;
+ break;
+ }
- propcount = apr_hash_count(proplist);
- value = apr_psprintf(scratch_pool, "%u", propcount);
+ propcount = apr_hash_count(proplist);
+ value = apr_psprintf(scratch_pool, "%u", propcount);
+ }
break;
}