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 2012/12/06 21:23:58 UTC
svn commit: r1418054 [1/3] - in /subversion/branches/in-repo-authz: ./
subversion/include/ subversion/include/private/ subversion/libsvn_client/
subversion/libsvn_ra_serf/ subversion/libsvn_subr/ subversion/libsvn_wc/
subversion/mod_dav_svn/ subversion...
Author: breser
Date: Thu Dec 6 20:23:54 2012
New Revision: 1418054
URL: http://svn.apache.org/viewvc?rev=1418054&view=rev
Log:
Sync the 'in-repo-authz' branch with recent trunk changes.
(Merged /subversion/trunk:r1417565-r1418053.)
Modified:
subversion/branches/in-repo-authz/ (props changed)
subversion/branches/in-repo-authz/COMMITTERS
subversion/branches/in-repo-authz/subversion/include/private/svn_skel.h
subversion/branches/in-repo-authz/subversion/include/private/svn_wc_private.h
subversion/branches/in-repo-authz/subversion/include/svn_config.h
subversion/branches/in-repo-authz/subversion/libsvn_client/add.c
subversion/branches/in-repo-authz/subversion/libsvn_client/client.h
subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/commit.c
subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/ra_serf.h
subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/serf.c
subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/update.c
subversion/branches/in-repo-authz/subversion/libsvn_subr/config_file.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_crawler.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_files.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/ambient_depth_filter_editor.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.h
subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_editor.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_local.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/entries.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/externals.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/info.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/merge.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/node.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/props.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/props.h
subversion/branches/in-repo-authz/subversion/libsvn_wc/status.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/update_editor.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/util.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/wc_db.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/wc_db.h
subversion/branches/in-repo-authz/subversion/libsvn_wc/wc_db_private.h
subversion/branches/in-repo-authz/subversion/libsvn_wc/wc_db_update_move.c
subversion/branches/in-repo-authz/subversion/libsvn_wc/workqueue.c
subversion/branches/in-repo-authz/subversion/mod_dav_svn/dav_svn.h
subversion/branches/in-repo-authz/subversion/mod_dav_svn/mod_dav_svn.c
subversion/branches/in-repo-authz/subversion/mod_dav_svn/reports/update.c
subversion/branches/in-repo-authz/subversion/tests/cmdline/merge_automatic_tests.py
subversion/branches/in-repo-authz/subversion/tests/cmdline/prop_tests.py
subversion/branches/in-repo-authz/subversion/tests/libsvn_wc/db-test.c
Propchange: subversion/branches/in-repo-authz/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1417565-1418053
Modified: subversion/branches/in-repo-authz/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/COMMITTERS?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/COMMITTERS [UTF-8] (original)
+++ subversion/branches/in-repo-authz/COMMITTERS [UTF-8] Thu Dec 6 20:23:54 2012
@@ -131,7 +131,7 @@ Commit access for specific areas:
nori Kobayashi Noritada <no...@dolphin.c.u-tokyo.ac.jp> (Ruby tools,
po: ja) [EMAIL IS
BOUNCING]
- mf Martin Furter <mf...@rola.ch> (svnmirror.sh
+ mf Martin Furter <mf...@apache.org> (svnmirror.sh
svn-backup-dumps.py)
adejong Arthur de Jong <ar...@ch.tudelft.nl> (svn2cl)
wsanchez Wilfredo Sánchez <ws...@wsanchez.net> (various contrib)
Modified: subversion/branches/in-repo-authz/subversion/include/private/svn_skel.h
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/include/private/svn_skel.h?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/include/private/svn_skel.h (original)
+++ subversion/branches/in-repo-authz/subversion/include/private/svn_skel.h Thu Dec 6 20:23:54 2012
@@ -213,7 +213,7 @@ svn_skel__parse_prop(svn_string_t **prop
apr_pool_t *result_pool);
/* Unparse a PROPLIST hash (which has const char * property names and
- svn_stringbuf_t * values) into a `PROPLIST' skel *SKEL_P. Use POOL
+ svn_string_t * values) into a `PROPLIST' skel *SKEL_P. Use POOL
for all allocations. */
svn_error_t *
svn_skel__unparse_proplist(svn_skel_t **skel_p,
Modified: subversion/branches/in-repo-authz/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/include/private/svn_wc_private.h?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/in-repo-authz/subversion/include/private/svn_wc_private.h Thu Dec 6 20:23:54 2012
@@ -1594,7 +1594,11 @@ svn_wc__get_switch_editor(const svn_delt
* and for top-level file entries as well (if any). If
* #svn_depth_immediates, do the same as #svn_depth_files but also diff
* top-level subdirectories at #svn_depth_empty. If #svn_depth_infinity,
- * then diff fully recursively.
+ * then diff fully recursively. If @a depth is #svn_depth_unknown, then...
+ *
+ * ### ... then the @a server_performs_filtering option is meaningful.
+ * ### But what does this depth mean exactly? Something about 'ambient'
+ * ### depth? How does it compare with depth 'infinity'?
*
* @a ignore_ancestry determines whether paths that have discontinuous node
* ancestry are treated as delete/add or as simple modifications. If
@@ -1621,7 +1625,7 @@ svn_wc__get_switch_editor(const svn_delt
* it's a member of one of those changelists. If @a changelist_filter is
* empty (or altogether @c NULL), no changelist filtering occurs.
*
- * If @a server_performs_filtering is TRUE, assume that the server handles
+ * If @a server_performs_filtering is TRUE, assume that the server handles
* the ambient depth filtering, so this doesn't have to be handled in the
* editor.
*
Modified: subversion/branches/in-repo-authz/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/include/svn_config.h?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/include/svn_config.h (original)
+++ subversion/branches/in-repo-authz/subversion/include/svn_config.h Thu Dec 6 20:23:54 2012
@@ -87,6 +87,8 @@ typedef struct svn_config_t svn_config_t
#define SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT \
"store-ssl-client-cert-pp-plaintext"
#define SVN_CONFIG_OPTION_USERNAME "username"
+/** @since New in 1.8. */
+#define SVN_CONFIG_OPTION_BULK_UPDATES "bulk-updates"
#define SVN_CONFIG_CATEGORY_CONFIG "config"
#define SVN_CONFIG_SECTION_AUTH "auth"
Modified: subversion/branches/in-repo-authz/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_client/add.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_client/add.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_client/add.c Thu Dec 6 20:23:54 2012
@@ -381,20 +381,15 @@ add_file(const char *local_abspath,
* If DIR_ABSPATH (or any item below DIR_ABSPATH) is already scheduled for
* addition, add will fail and return an error unless FORCE is TRUE.
*
- * Files and directories that match ignore patterns will not be added unless
- * NO_IGNORE is TRUE.
- *
* Use MAGIC_COOKIE (which may be NULL) to detect the mime-type of files
* if necessary.
*
- * If not NULL, *CONFIG_AUTOPROPS is a hash representing the config file and
+ * If not NULL, CONFIG_AUTOPROPS is a hash representing the config file and
* svn:auto-props autoprops which apply to DIR_ABSPATH. It maps
* const char * file patterns to another hash which maps const char *
- * property names to const char *property values. If *CONFIG_AUTOPROPS is
- * NULL and DIR_ABSPATH is unversioned, then this function will populate
- * *CONFIG_AUTOPROPS (allocated in RESULT_POOL) using DIR_ABSPATH's nearest
- * versioned parent to determine the svn:auto-props which DIR_ABSPATH
- * will inherit once added.
+ * property names to const char *property values. If CONFIG_AUTOPROPS is
+ * NULL and the config file and svn:auto-props autoprops are required by this
+ * function, then such will be obtained.
*
* If IGNORES is not NULL, then it is an array of const char * ignore patterns
* that apply to any children of DIR_ABSPATH. If REFRESH_IGNORES is TRUE, then
@@ -413,14 +408,12 @@ static svn_error_t *
add_dir_recursive(const char *dir_abspath,
svn_depth_t depth,
svn_boolean_t force,
- svn_boolean_t no_ignore,
svn_boolean_t no_autoprops,
svn_magic__cookie_t *magic_cookie,
- apr_hash_t **config_autoprops,
+ apr_hash_t *config_autoprops,
svn_boolean_t refresh_ignores,
apr_array_header_t *ignores,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_error_t *err;
@@ -438,8 +431,8 @@ add_dir_recursive(const char *dir_abspat
if (refresh_ignores)
SVN_ERR(svn_client__get_all_ignores(&ignores, dir_abspath,
- no_ignore, ctx, scratch_pool,
- scratch_pool));
+ ctx, scratch_pool,
+ iterpool));
/* Add this directory to revision control. */
err = svn_wc_add_from_disk(ctx->wc_ctx, dir_abspath,
@@ -458,19 +451,21 @@ add_dir_recursive(const char *dir_abspat
}
}
- /* For the root of any unversioned subtree, get some or all of the
- following:
+ /* If DIR_ABSPATH is the root of an unversioned subtree then get the
+ following "autoprops":
1) Explicit and inherited svn:auto-props properties on
DIR_ABSPATH
- 2) Explicit and inherited svn:global-ignores properties on
- DIR_ABSPATH
- 3) auto-props from the CTX->CONFIG hash */
- if (!entry_exists && *config_autoprops == NULL)
+ 2) auto-props from the CTX->CONFIG hash
+
+ Since this set of autoprops applies to all unversioned children of
+ DIR_ABSPATH, we will pass these along to any recursive calls to
+ add_dir_recursive() and calls to add_file() below. Thus sparing
+ these callees from looking up the same information. */
+ if (!entry_exists && config_autoprops == NULL)
{
- SVN_ERR(svn_client__get_all_auto_props(config_autoprops, dir_abspath,
- ctx, result_pool,
- scratch_pool));
+ SVN_ERR(svn_client__get_all_auto_props(&config_autoprops, dir_abspath,
+ ctx, scratch_pool, iterpool));
found_unversioned_root = TRUE;
}
@@ -518,15 +513,15 @@ add_dir_recursive(const char *dir_abspat
refresh_ignores = FALSE;
SVN_ERR(add_dir_recursive(abspath, depth_below_here,
- force, no_ignore, no_autoprops,
+ force, no_autoprops,
magic_cookie, config_autoprops,
refresh_ignores, ignores, ctx,
- iterpool, iterpool));
+ iterpool));
}
else if ((dirent->kind == svn_node_file || dirent->special)
&& depth >= svn_depth_files)
{
- err = add_file(abspath, magic_cookie, *config_autoprops,
+ err = add_file(abspath, magic_cookie, config_autoprops,
no_autoprops, ctx, iterpool);
if (err && err->apr_err == SVN_ERR_ENTRY_EXISTS && force)
svn_error_clear(err);
@@ -538,11 +533,6 @@ add_dir_recursive(const char *dir_abspat
/* Destroy the per-iteration pool. */
svn_pool_destroy(iterpool);
- /* Reset CONFIG_AUTOPROPS if we just finished processing the root
- of an unversioned subtree. */
- if (found_unversioned_root)
- *config_autoprops = NULL;
-
return SVN_NO_ERROR;
}
@@ -898,7 +888,6 @@ svn_error_t *svn_client__get_inherited_i
svn_error_t *svn_client__get_all_ignores(apr_array_header_t **ignores,
const char *local_abspath,
- svn_boolean_t no_ignore,
svn_client_ctx_t *ctx,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
@@ -957,11 +946,8 @@ svn_error_t *svn_client__get_all_ignores
/* Now that we are sure we have an existing parent, get the config ignore
and the local ignore patterns... */
- if (!no_ignore)
- SVN_ERR(svn_wc_get_ignores2(ignores, ctx->wc_ctx, local_abspath,
- ctx->config, result_pool, scratch_pool));
- else
- *ignores = apr_array_make(result_pool, 16, sizeof(const char *));
+ SVN_ERR(svn_wc_get_ignores2(ignores, ctx->wc_ctx, local_abspath,
+ ctx->config, result_pool, scratch_pool));
/* ...and add the inherited ignores to it. */
for (i = 0; i < inherited_ignores->nelts; i++)
@@ -997,7 +983,6 @@ add(const char *local_abspath,
svn_node_kind_t kind;
svn_error_t *err;
svn_magic__cookie_t *magic_cookie;
- apr_hash_t *config_autoprops = NULL;
apr_array_header_t *ignores = NULL;
svn_magic__init(&magic_cookie, scratch_pool);
@@ -1048,12 +1033,12 @@ add(const char *local_abspath,
/* We use add_dir_recursive for all directory targets
and pass depth along no matter what it is, so that the
target's depth will be set correctly. */
- err = add_dir_recursive(local_abspath, depth, force, no_ignore,
- no_autoprops, magic_cookie, &config_autoprops,
- TRUE, ignores, ctx, scratch_pool, scratch_pool);
+ err = add_dir_recursive(local_abspath, depth, force,
+ no_autoprops, magic_cookie, NULL,
+ !no_ignore, ignores, ctx, scratch_pool);
}
else if (kind == svn_node_file)
- err = add_file(local_abspath, magic_cookie, config_autoprops,
+ err = add_file(local_abspath, magic_cookie, NULL,
no_autoprops, ctx, scratch_pool);
else if (kind == svn_node_none)
{
Modified: subversion/branches/in-repo-authz/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_client/client.h?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_client/client.h (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_client/client.h Thu Dec 6 20:23:54 2012
@@ -394,7 +394,6 @@ svn_error_t *svn_client__get_all_auto_pr
RESULT_POOL. Use SCRATCH_POOL for temporary allocations. */
svn_error_t *svn_client__get_all_ignores(apr_array_header_t **ignores,
const char *local_abspath,
- svn_boolean_t no_ignore,
svn_client_ctx_t *ctx,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
Modified: subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/commit.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/commit.c Thu Dec 6 20:23:54 2012
@@ -1466,16 +1466,10 @@ open_root(void *edit_baton,
for (hi = apr_hash_first(ctx->pool, ctx->revprop_table); hi;
hi = apr_hash_next(hi))
{
- const void *key;
- void *val;
- const char *name;
- svn_string_t *value;
+ const char *name = svn__apr_hash_index_key(hi);
+ svn_string_t *value = svn__apr_hash_index_val(hi);
const char *ns;
- apr_hash_this(hi, &key, NULL, &val);
- name = key;
- value = val;
-
if (strncmp(name, SVN_PROP_PREFIX, sizeof(SVN_PROP_PREFIX) - 1) == 0)
{
ns = SVN_DAV_PROP_NS_SVN;
Modified: subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/ra_serf.h?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/ra_serf.h Thu Dec 6 20:23:54 2012
@@ -223,6 +223,11 @@ struct svn_ra_serf__session_t {
/*** End HTTP v2 stuff ***/
svn_ra_serf__blncache_t *blncache;
+
+ /* Flag that indicates if we request the server for bulk updates (TRUE) with
+ all the properties and content in the update-report response. If FALSE,
+ request a skelta update-report with inlined properties. */
+ svn_boolean_t bulk_updates;
};
#define SVN_RA_SERF__HAVE_HTTPV2_SUPPORT(sess) ((sess)->me_resource != NULL)
Modified: subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/serf.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/serf.c Thu Dec 6 20:23:54 2012
@@ -218,6 +218,13 @@ load_config(svn_ra_serf__session_t *sess
svn_config_get(config, &session->ssl_authorities, SVN_CONFIG_SECTION_GLOBAL,
SVN_CONFIG_OPTION_SSL_AUTHORITY_FILES, NULL);
+ /* If set, read the flag that tells us to do bulk updates or not. Defaults
+ to skelta updates. */
+ SVN_ERR(svn_config_get_bool(config, &session->bulk_updates,
+ SVN_CONFIG_SECTION_GLOBAL,
+ SVN_CONFIG_OPTION_BULK_UPDATES,
+ FALSE));
+
if (config)
server_group = svn_config_find_group(config,
session->session_url.hostname,
@@ -254,6 +261,12 @@ load_config(svn_ra_serf__session_t *sess
TRUE));
svn_config_get(config, &session->ssl_authorities, server_group,
SVN_CONFIG_OPTION_SSL_AUTHORITY_FILES, NULL);
+
+ /* Load the group bulk updates flag. */
+ SVN_ERR(svn_config_get_bool(config, &session->bulk_updates,
+ server_group,
+ SVN_CONFIG_OPTION_BULK_UPDATES,
+ FALSE));
}
/* Parse the connection timeout value, if any. */
Modified: subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/update.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/update.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_ra_serf/update.c Thu Dec 6 20:23:54 2012
@@ -3161,19 +3161,23 @@ make_update_reporter(svn_ra_session_t *r
svn_io_file_del_on_pool_cleanup,
report->pool, scratch_pool));
-#ifdef SVN_RA_SERF__UPDATES_SEND_ALL
- svn_xml_make_open_tag(&buf, scratch_pool, svn_xml_normal, "S:update-report",
- "xmlns:S", SVN_XML_NAMESPACE, "send-all", "true",
- NULL);
-#else
- svn_xml_make_open_tag(&buf, scratch_pool, svn_xml_normal, "S:update-report",
- "xmlns:S", SVN_XML_NAMESPACE,
- NULL);
- /* Subversion 1.8+ servers can be told to send properties for newly
- added items inline even when doing a skelta response. */
- make_simple_xml_tag(&buf, "S:include-props", "yes", scratch_pool);
-#endif
-
+ if (sess->bulk_updates)
+ {
+ svn_xml_make_open_tag(&buf, scratch_pool, svn_xml_normal,
+ "S:update-report",
+ "xmlns:S", SVN_XML_NAMESPACE, "send-all", "true",
+ NULL);
+ }
+ else
+ {
+ svn_xml_make_open_tag(&buf, scratch_pool, svn_xml_normal,
+ "S:update-report",
+ "xmlns:S", SVN_XML_NAMESPACE,
+ NULL);
+ /* Subversion 1.8+ servers can be told to send properties for newly
+ added items inline even when doing a skelta response. */
+ make_simple_xml_tag(&buf, "S:include-props", "yes", scratch_pool);
+ }
make_simple_xml_tag(&buf, "S:src-path", report->source, scratch_pool);
@@ -3215,11 +3219,13 @@ make_update_reporter(svn_ra_session_t *r
/* When in 'send-all' mode, mod_dav_svn will assume that it should
calculate and transmit real text-deltas (instead of empty windows
that merely indicate "text is changed") unless it finds this
- element. When not in 'send-all' mode, mod_dav_svn will never
- send text-deltas at all.
+ element.
NOTE: Do NOT count on servers actually obeying this, as some exist
- which obey send-all, but do not check for this directive at all! */
+ which obey send-all, but do not check for this directive at all!
+
+ NOTE 2: When not in 'send-all' mode, mod_dav_svn can still be configured to
+ override our request and send text-deltas. */
if (! text_deltas)
{
make_simple_xml_tag(&buf, "S:text-deltas", "no", scratch_pool);
Modified: subversion/branches/in-repo-authz/subversion/libsvn_subr/config_file.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_subr/config_file.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_subr/config_file.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_subr/config_file.c Thu Dec 6 20:23:54 2012
@@ -814,6 +814,10 @@ svn_config_ensure(const char *config_dir
"### http-library Which library to use for http/https"
NL
"### connections." NL
+ "### bulk_updates Whether to request bulk update" NL
+ "### responses, or fetch each file in "
+ NL
+ "### an individual request. " NL
"### store-passwords Specifies whether passwords used" NL
"### to authenticate against a" NL
"### Subversion server may be cached" NL
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_crawler.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_crawler.c Thu Dec 6 20:23:54 2012
@@ -659,7 +659,7 @@ svn_wc_crawl_revisions5(svn_wc_context_t
&repos_relpath, &repos_root_url,
NULL, NULL, NULL, NULL, &target_depth,
NULL, NULL, &target_lock,
- NULL, NULL,
+ NULL, NULL, NULL,
db, local_abspath, scratch_pool,
scratch_pool);
@@ -807,7 +807,7 @@ svn_wc_crawl_revisions5(svn_wc_context_t
err = svn_wc__db_base_get_info(&parent_status, NULL, NULL,
&parent_repos_relpath, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
db, parent_abspath,
scratch_pool, scratch_pool);
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_files.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_files.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_files.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/adm_files.c Thu Dec 6 20:23:54 2012
@@ -175,7 +175,7 @@ svn_wc__text_base_path_to_read(const cha
const svn_checksum_t *checksum;
SVN_ERR(svn_wc__db_read_pristine_info(&status, &kind, NULL, NULL, NULL, NULL,
- &checksum, NULL, NULL,
+ &checksum, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
@@ -231,7 +231,7 @@ svn_wc__get_pristine_contents(svn_stream
*size = SVN_INVALID_FILESIZE;
SVN_ERR(svn_wc__db_read_pristine_info(&status, &kind, NULL, NULL, NULL, NULL,
- &sha1_checksum, NULL, NULL,
+ &sha1_checksum, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/ambient_depth_filter_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/ambient_depth_filter_editor.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/ambient_depth_filter_editor.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/ambient_depth_filter_editor.c Thu Dec 6 20:23:54 2012
@@ -132,7 +132,7 @@ ambient_read_info(svn_wc__db_status_t *s
err = svn_wc__db_base_get_info(status, kind, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, depth, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool);
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.c Thu Dec 6 20:23:54 2012
@@ -1804,7 +1804,7 @@ setup_tree_conflict_desc(svn_wc_conflict
err = svn_wc__db_base_get_info(&status, &kind, &revision,
&repos_relpath, &repos_root_url,
&repos_uuid, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool);
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.h
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.h?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.h (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/conflicts.h Thu Dec 6 20:23:54 2012
@@ -261,6 +261,8 @@ svn_wc__conflict_skel_resolve(svn_boolea
* Output arguments can be NULL if the value is not necessary.
*
* ### stsp asks: what is LOCATIONS?
+ * ### Set *LOCATIONS to an array of (svn_wc_conflict_version_t *)
+ * representing ...
*
* TEXT_, PROP_ and TREE_CONFLICTED (when not NULL) will be set to TRUE
* when the conflict contains the specified kind of conflict, otherwise
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_editor.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_editor.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_editor.c Thu Dec 6 20:23:54 2012
@@ -170,7 +170,7 @@ get_pristine_file(const char **result_ab
if (!use_base)
{
SVN_ERR(svn_wc__db_read_pristine_info(NULL, NULL, NULL, NULL, NULL, NULL,
- &checksum, NULL, NULL,
+ &checksum, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
}
@@ -178,7 +178,7 @@ get_pristine_file(const char **result_ab
{
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, &checksum,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
}
@@ -557,7 +557,7 @@ file_diff(struct edit_baton *eb,
if (have_base)
SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, &revert_base_revnum,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
@@ -1468,7 +1468,7 @@ open_file(const char *path,
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, &fb->base_checksum, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
eb->db, fb->local_abspath,
fb->pool, fb->pool));
@@ -1647,7 +1647,7 @@ close_file(void *file_baton,
NULL, NULL, NULL, NULL,
&pristine_checksum,
NULL, NULL,
- &had_props, NULL,
+ &had_props, NULL, NULL,
db, fb->local_abspath,
scratch_pool, scratch_pool));
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_local.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_local.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_local.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/diff_local.c Thu Dec 6 20:23:54 2012
@@ -172,7 +172,7 @@ file_diff(struct diff_baton *eb,
&base_revision,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, &base_checksum, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
@@ -244,7 +244,8 @@ file_diff(struct diff_baton *eb,
SVN_ERR(svn_wc__db_read_pristine_info(NULL, NULL, NULL, NULL, NULL,
NULL, &del_checksum, NULL,
- NULL, db, local_abspath,
+ NULL, NULL,
+ db, local_abspath,
scratch_pool, scratch_pool));
}
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/entries.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/entries.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/entries.c Thu Dec 6 20:23:54 2012
@@ -231,7 +231,7 @@ get_info_for_deleted(svn_wc_entry_t *ent
checksum,
NULL,
NULL /* lock */,
- &entry->has_props,
+ &entry->has_props, NULL,
NULL,
db,
entry_abspath,
@@ -255,7 +255,7 @@ get_info_for_deleted(svn_wc_entry_t *ent
&entry->depth,
checksum,
NULL,
- &entry->has_props,
+ &entry->has_props, NULL,
db,
entry_abspath,
result_pool,
@@ -297,6 +297,7 @@ get_info_for_deleted(svn_wc_entry_t *ent
SVN_ERR(svn_wc__db_base_get_info(&status, NULL, &entry->revision,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL,
db, entry_abspath,
result_pool, scratch_pool));
@@ -565,7 +566,7 @@ read_one_entry(const svn_wc_entry_t **ne
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
db, entry_abspath,
scratch_pool,
scratch_pool));
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/externals.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/externals.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/externals.c Thu Dec 6 20:23:54 2012
@@ -515,7 +515,7 @@ open_file(const char *path,
NULL, NULL, NULL, &eb->changed_rev,
&eb->changed_date, &eb->changed_author,
NULL, &eb->original_checksum, NULL, NULL,
- &eb->had_props, NULL,
+ &eb->had_props, NULL, NULL,
eb->db, eb->local_abspath,
eb->pool, file_pool));
@@ -738,14 +738,10 @@ close_file(void *file_baton,
&new_pristine_props,
&new_actual_props,
eb->db, eb->local_abspath,
- svn_kind_file,
NULL /* server_baseprops*/,
base_props,
actual_props,
regular_prop_changes,
- TRUE /* base_merge */,
- FALSE /* dry_run */,
- eb->cancel_func, eb->cancel_baton,
pool, pool));
}
else
@@ -1071,7 +1067,7 @@ svn_wc__crawl_file_external(svn_wc_conte
err = svn_wc__db_base_get_info(NULL, &kind, &revision,
&repos_relpath, &repos_root_url, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, &lock,
- NULL, &update_root,
+ NULL, NULL, &update_root,
db, local_abspath,
scratch_pool, scratch_pool);
@@ -1238,7 +1234,7 @@ is_external_rolled_out(svn_boolean_t *is
err = svn_wc__db_base_get_info(NULL, NULL, NULL, &repos_relpath,
&repos_root_url, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
wc_ctx->db, xinfo->local_abspath,
scratch_pool, scratch_pool);
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/info.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/info.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/info.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/info.c Thu Dec 6 20:23:54 2012
@@ -172,7 +172,7 @@ build_info_for_node(svn_wc__info2_t **in
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, &tmpinfo->rev, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
- NULL,
+ NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
}
@@ -226,7 +226,7 @@ build_info_for_node(svn_wc__info2_t **in
&tmpinfo->last_changed_author,
&wc_info->depth,
&wc_info->checksum,
- NULL, NULL,
+ NULL, NULL, NULL,
db, local_abspath,
result_pool, scratch_pool));
@@ -265,7 +265,7 @@ build_info_for_node(svn_wc__info2_t **in
&tmpinfo->repos_root_URL,
&tmpinfo->repos_UUID, NULL, NULL,
NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
db, local_abspath,
result_pool, scratch_pool));
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/merge.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/merge.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/merge.c Thu Dec 6 20:23:54 2012
@@ -1145,7 +1145,7 @@ svn_wc_merge5(enum svn_wc_merge_outcome_
svn_skel_t *work_items;
svn_skel_t *conflict_skel = NULL;
apr_hash_t *pristine_props = NULL;
- apr_hash_t *actual_props = NULL;
+ apr_hash_t *actual_props;
apr_hash_t *new_actual_props = NULL;
SVN_ERR_ASSERT(svn_dirent_is_absolute(left_abspath));
@@ -1222,7 +1222,7 @@ svn_wc_merge5(enum svn_wc_merge_outcome_
scratch_pool, scratch_pool));
}
else if (pristine_props)
- actual_props = apr_hash_copy(scratch_pool, pristine_props);
+ actual_props = pristine_props;
else
actual_props = apr_hash_make(scratch_pool);
}
@@ -1230,7 +1230,7 @@ svn_wc_merge5(enum svn_wc_merge_outcome_
if (merge_props_outcome)
{
int i;
- apr_hash_t *new_pristine_props;
+
/* The PROPCHANGES may not have non-"normal" properties in it. If entry
or wc props were allowed, then the following code would install them
into the BASE and/or WORKING properties(!). */
@@ -1249,12 +1249,10 @@ svn_wc_merge5(enum svn_wc_merge_outcome_
SVN_ERR(svn_wc__merge_props(&conflict_skel,
merge_props_outcome,
- &new_pristine_props, &new_actual_props,
- wc_ctx->db, target_abspath, svn_kind_file,
+ NULL, &new_actual_props,
+ wc_ctx->db, target_abspath,
original_props, pristine_props, actual_props,
- prop_diff, FALSE /* base_merge */,
- dry_run,
- cancel_func, cancel_baton,
+ prop_diff,
scratch_pool, scratch_pool));
}
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/node.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/node.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/node.c Thu Dec 6 20:23:54 2012
@@ -723,7 +723,7 @@ svn_wc__node_get_base(svn_revnum_t *revi
err = svn_wc__db_base_get_info(NULL, NULL, revision, repos_relpath,
repos_root_url, repos_uuid, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
wc_ctx->db, local_abspath,
result_pool, scratch_pool);
if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
@@ -782,7 +782,7 @@ svn_wc__node_get_pre_ng_status_data(svn_
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, revision, NULL, NULL, NULL,
changed_rev, changed_date, changed_author,
NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
wc_ctx->db, local_abspath,
result_pool, scratch_pool));
else
@@ -811,7 +811,7 @@ svn_wc__node_get_lock_info(const char **
err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, &lock, NULL,
- NULL,
+ NULL, NULL,
wc_ctx->db, local_abspath,
result_pool, scratch_pool);
@@ -1117,7 +1117,7 @@ svn_wc__internal_get_origin(svn_boolean_
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, revision, repos_relpath,
repos_root_url, repos_uuid, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
db, local_abspath,
result_pool, scratch_pool));
}
@@ -1203,7 +1203,7 @@ svn_wc__node_get_commit_status(svn_boole
{
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, revision, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
wc_ctx->db, local_abspath,
scratch_pool, scratch_pool));
}
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/props.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/props.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/props.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/props.c Thu Dec 6 20:23:54 2012
@@ -200,7 +200,7 @@ svn_wc__perform_props_merge(svn_wc_notif
svn_wc__db_status_t status;
svn_kind_t kind;
apr_hash_t *pristine_props = NULL;
- apr_hash_t *actual_props = NULL;
+ apr_hash_t *actual_props;
apr_hash_t *new_pristine_props;
apr_hash_t *new_actual_props;
svn_boolean_t had_props, props_mod;
@@ -289,18 +289,18 @@ svn_wc__perform_props_merge(svn_wc_notif
SVN_ERR(svn_wc__get_actual_props(&actual_props, db, local_abspath,
scratch_pool, scratch_pool));
else
- actual_props = apr_hash_copy(scratch_pool, pristine_props);
+ actual_props = pristine_props;
/* Note that while this routine does the "real" work, it's only
prepping tempfiles and writing log commands. */
SVN_ERR(svn_wc__merge_props(&conflict_skel, state,
- &new_pristine_props, &new_actual_props,
- db, local_abspath, kind,
+ base_merge ? &new_pristine_props : NULL,
+ &new_actual_props,
+ db, local_abspath,
baseprops /* server_baseprops */,
pristine_props,
actual_props,
- propchanges, base_merge, dry_run,
- cancel_func, cancel_baton,
+ propchanges,
scratch_pool, scratch_pool));
if (dry_run)
@@ -342,11 +342,11 @@ svn_wc__perform_props_merge(svn_wc_notif
/* See props.h */
#ifdef SVN__SUPPORT_BASE_MERGE
if (status == svn_wc__db_status_added)
- SVN_ERR(svn_wc__db_temp_working_set_props(db, local_abspath,
- new_base_props, scratch_pool));
+ SVN_ERR(svn_wc__db_temp_working_set_props(
+ db, local_abspath, new_pristine_props, scratch_pool));
else
- SVN_ERR(svn_wc__db_temp_base_set_props(db, local_abspath,
- new_base_props, scratch_pool));
+ SVN_ERR(svn_wc__db_temp_base_set_props(
+ db, local_abspath, new_pristine_props, scratch_pool));
#else
if (base_merge)
return svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
@@ -785,7 +785,8 @@ set_prop_merge_state(svn_wc_notify_state
}
/* Add the property with name PROPNAME to the set of ACTUAL_PROPS on
- * PATH, setting *STATE or *CONFLICT_REMAINS according to merge outcomes.
+ * DB/LOCAL_ABSPATH, setting *STATE or *CONFLICT_REMAINS according to
+ * the merge outcome.
*
* *STATE is an input and output parameter, its value is to be
* set using set_merge_prop_state().
@@ -868,9 +869,9 @@ apply_single_prop_add(svn_wc_notify_stat
}
-/* Delete the property with name PROPNAME from the set of
- * ACTUAL_PROPS on PATH, setting *STATE or *CONFLICT_REMAINS according to
- * merge outcomes.
+/* Delete the property with name PROPNAME from the set of ACTUAL_PROPS on
+ * DB/LOCAL_ABSPATH, setting *STATE or *CONFLICT_REMAINS according to
+ * the merge outcome.
*
* *STATE is an input and output parameter, its value is to be
* set using set_merge_prop_state().
@@ -1087,8 +1088,9 @@ apply_single_generic_prop_change(svn_wc_
return SVN_NO_ERROR;
}
-/* Change the property with name PROPNAME in the set of ACTUAL_PROPS
- * on PATH, setting *STATE or *CONFLICT_REMAINS according to the merge outcome.
+/* Change the property with name PROPNAME in the set of ACTUAL_PROPS on
+ * DB/LOCAL_ABSPATH, setting *STATE or *CONFLICT_REMAINS according to
+ * the merge outcome.
*
* *STATE is an input and output parameter, its value is to be
* set using set_prop_merge_state(). (May be null.).
@@ -1179,36 +1181,27 @@ svn_wc__merge_props(svn_skel_t **conflic
apr_hash_t **new_actual_props,
svn_wc__db_t *db,
const char *local_abspath,
- svn_kind_t kind,
apr_hash_t *server_baseprops,
apr_hash_t *pristine_props,
apr_hash_t *actual_props,
const apr_array_header_t *propchanges,
- svn_boolean_t base_merge,
- svn_boolean_t dry_run,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
apr_pool_t *iterpool;
int i;
apr_hash_t *conflict_props = NULL;
- apr_hash_t *old_actual_props;
apr_hash_t *their_props;
SVN_ERR_ASSERT(pristine_props != NULL);
SVN_ERR_ASSERT(actual_props != NULL);
- /* Just copy the pointers as we copy the data in the skel if
- necessary */
- old_actual_props = apr_hash_copy(scratch_pool, actual_props);
-
- *new_pristine_props = NULL;
- *new_actual_props = NULL;
+ if (new_pristine_props)
+ *new_pristine_props = apr_hash_copy(result_pool, pristine_props);
+ *new_actual_props = apr_hash_copy(result_pool, actual_props);
if (!server_baseprops)
- server_baseprops = apr_hash_copy(scratch_pool, pristine_props);
+ server_baseprops = pristine_props;
their_props = apr_hash_copy(scratch_pool, server_baseprops);
@@ -1234,10 +1227,6 @@ svn_wc__merge_props(svn_skel_t **conflic
svn_pool_clear(iterpool);
- /* Should we stop the prop merging process? */
- if (cancel_func)
- SVN_ERR(cancel_func(cancel_baton));
-
/* For the incoming propchange, figure out the TO and FROM values. */
incoming_change = &APR_ARRAY_IDX(propchanges, i, svn_prop_t);
propname = incoming_change->name;
@@ -1247,8 +1236,9 @@ svn_wc__merge_props(svn_skel_t **conflic
base_val = apr_hash_get(pristine_props, propname, APR_HASH_KEY_STRING);
- if (base_merge)
- apr_hash_set(pristine_props, propname, APR_HASH_KEY_STRING, to_val);
+ if (new_pristine_props)
+ apr_hash_set(*new_pristine_props, propname, APR_HASH_KEY_STRING,
+ to_val);
apr_hash_set(their_props, propname, APR_HASH_KEY_STRING, to_val);
@@ -1260,21 +1250,21 @@ svn_wc__merge_props(svn_skel_t **conflic
if (! from_val) /* adding a new property */
SVN_ERR(apply_single_prop_add(state, &conflict_remains,
db, local_abspath,
- actual_props,
+ *new_actual_props,
propname, base_val, to_val,
result_pool, iterpool));
else if (! to_val) /* delete an existing property */
SVN_ERR(apply_single_prop_delete(state, &conflict_remains,
db, local_abspath,
- actual_props,
+ *new_actual_props,
propname, base_val, from_val,
result_pool, iterpool));
else /* changing an existing property */
SVN_ERR(apply_single_prop_change(state, &conflict_remains,
db, local_abspath,
- actual_props,
+ *new_actual_props,
propname, base_val, from_val, to_val,
result_pool, iterpool));
@@ -1286,14 +1276,10 @@ svn_wc__merge_props(svn_skel_t **conflic
{
set_prop_merge_state(state, svn_wc_notify_state_conflicted);
- if (dry_run)
- continue; /* skip to next incoming change */
-
if (!conflict_props)
- conflict_props = apr_hash_make(result_pool);
+ conflict_props = apr_hash_make(scratch_pool);
- apr_hash_set(conflict_props, apr_pstrdup(result_pool, propname),
- APR_HASH_KEY_STRING, "");
+ apr_hash_set(conflict_props, propname, APR_HASH_KEY_STRING, "");
}
} /* foreach propchange ... */
@@ -1301,12 +1287,6 @@ svn_wc__merge_props(svn_skel_t **conflic
/* Finished applying all incoming propchanges to our hashes! */
- if (dry_run)
- return SVN_NO_ERROR;
-
- *new_pristine_props = pristine_props;
- *new_actual_props = actual_props;
-
if (conflict_props != NULL)
{
/* Ok, we got some conflict. Lets store all the property knowledge we
@@ -1318,7 +1298,7 @@ svn_wc__merge_props(svn_skel_t **conflic
SVN_ERR(svn_wc__conflict_skel_add_prop_conflict(*conflict_skel,
db, local_abspath,
NULL /* reject_path */,
- old_actual_props,
+ actual_props,
server_baseprops,
their_props,
conflict_props,
@@ -1685,7 +1665,7 @@ get_file_for_validation(const svn_string
{
svn_stream_t *read_stream;
- /* Open PATH. */
+ /* Open GB->LOCAL_ABSPATH. */
SVN_ERR(svn_stream_open_readonly(&read_stream, gb->local_abspath,
pool, pool));
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/props.h
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/props.h?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/props.h (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/props.h Thu Dec 6 20:23:54 2012
@@ -73,25 +73,20 @@ svn_wc__internal_propget(const svn_strin
SERVER_BASEPROPS, calculate what changes should be applied to the working
copy.
- Return working queue operations in WORK_ITEMS and a new set of actual
- (NEW_ACTUAL_PROPS) and pristine properties (NEW_PRISTINE_PROPS).
-
We return the new property collections to the caller, so the caller
can combine the property update with other operations.
If SERVER_BASEPROPS is NULL then use the pristine props as PROPCHANGES
base.
- If BASE_MERGE is FALSE then only change working properties; if TRUE,
- change both the pristine and working properties. (Only the update editor
- should use BASE_MERGE is TRUE)
-
- If conflicts are found when merging, create a temporary .prej file,
- and provide working queue operations to write the conflict information
- into the .prej file later. Modify base properties unconditionally,
- if BASE_MERGE is TRUE, they do not generate conficts.
-
- TODO ### DRY_RUN ...
+ Return the new set of actual properties in *NEW_ACTUAL_PROPS. If
+ NEW_PRISTINE_PROPS is non-null, then also apply PROPCHANGES to
+ PRISTINE_PROPS and return the new set of pristine properties in
+ *NEW_PRISTINE_PROPS.
+
+ Return any conflicts of the actual props in *CONFLICT_SKEL. (Changes
+ made to the pristine properties, if BASE_MERGE is TRUE, do not
+ generate conficts.)
If STATE is non-null, set *STATE to the state of the local properties
after the merge. */
@@ -102,15 +97,10 @@ svn_wc__merge_props(svn_skel_t **conflic
apr_hash_t **new_actual_props,
svn_wc__db_t *db,
const char *local_abspath,
- svn_kind_t kind,
- apr_hash_t *server_baseprops,
- apr_hash_t *pristine_props,
- apr_hash_t *actual_props,
+ /*const*/ apr_hash_t *server_baseprops,
+ /*const*/ apr_hash_t *pristine_props,
+ /*const*/ apr_hash_t *actual_props,
const apr_array_header_t *propchanges,
- svn_boolean_t base_merge,
- svn_boolean_t dry_run,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
@@ -144,7 +134,13 @@ svn_wc__create_prejfile(const char **tmp
apr_pool_t *scratch_pool);
-/* Just like svn_wc_merge_props3(), but WITH a BASE_MERGE parameter. */
+/* Just like svn_wc_merge_props3(), but WITH a BASE_MERGE parameter.
+
+ If SVN__SUPPORT_BASE_MERGE is defined and BASE_MERGE is true, then
+ also use PROPCHANGES to modify the node's pristine properties. (That
+ cannot generate conficts.) If SVN__SUPPORT_BASE_MERGE is not defined
+ and BASE_MERGE is true, throw an error.
+ */
svn_error_t *
svn_wc__perform_props_merge(svn_wc_notify_state_t *state,
svn_wc__db_t *db,
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/status.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/status.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/status.c Thu Dec 6 20:23:54 2012
@@ -286,7 +286,7 @@ read_info(const struct svn_wc__db_info_t
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- lock_arg, NULL, &update_root,
+ lock_arg, NULL, NULL, &update_root,
db, local_abspath,
result_pool, scratch_pool));
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/update_editor.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/update_editor.c Thu Dec 6 20:23:54 2012
@@ -496,19 +496,6 @@ cleanup_edit_baton(void *edit_baton)
return APR_SUCCESS;
}
-/* An APR pool cleanup handler. This is a child handler, it removes
- the mail pool handler.
- <stsp> mail pool?
- <hwright> that's where the missing commit mails are going! */
-static apr_status_t
-cleanup_edit_baton_child(void *edit_baton)
-{
- struct edit_baton *eb = edit_baton;
- apr_pool_cleanup_kill(eb->pool, eb, cleanup_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.
@@ -1200,7 +1187,7 @@ open_root(void *edit_baton,
&db->old_repos_relpath, NULL, NULL,
&db->changed_rev, &db->changed_date,
&db->changed_author, &db->ambient_depth,
- NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
eb->db, db->local_abspath,
db->pool, pool));
db->was_incomplete = (status == svn_wc__db_status_incomplete);
@@ -1660,7 +1647,7 @@ delete_entry(const char *path,
SVN_ERR(svn_wc__db_base_get_info(&base_status, &base_kind, &old_revision,
&repos_relpath,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
eb->db, local_abspath,
scratch_pool, scratch_pool));
@@ -2236,7 +2223,7 @@ open_directory(const char *path,
&db->old_repos_relpath, NULL, NULL,
&db->changed_rev, &db->changed_date,
&db->changed_author, &db->ambient_depth,
- NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
eb->db, db->local_abspath,
db->pool, pool));
@@ -2502,15 +2489,10 @@ close_directory(void *dir_baton,
&new_actual_props,
eb->db,
db->local_abspath,
- svn_kind_dir,
NULL /* use baseprops */,
base_props,
actual_props,
regular_prop_changes,
- TRUE /* base_merge */,
- FALSE /* dry_run */,
- eb->cancel_func,
- eb->cancel_baton,
db->pool,
scratch_pool),
_("Couldn't do property merge"));
@@ -2563,7 +2545,7 @@ close_directory(void *dir_baton,
/* ### We just check if there is some node in BASE at this path */
err = svn_wc__db_base_get_info(&status, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
eb->db, child_abspath,
iterpool, iterpool);
@@ -3298,7 +3280,7 @@ open_file(const char *path,
&fb->changed_rev, &fb->changed_date,
&fb->changed_author, NULL,
&fb->original_checksum, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
eb->db, fb->local_abspath,
fb->pool, scratch_pool));
@@ -4117,14 +4099,10 @@ close_file(void *file_baton,
&new_actual_props,
eb->db,
fb->local_abspath,
- svn_kind_file,
NULL /* server_baseprops (update, not merge) */,
current_base_props,
current_actual_props,
regular_prop_changes, /* propchanges */
- TRUE /* base_merge */,
- FALSE /* dry_run */,
- eb->cancel_func, eb->cancel_baton,
scratch_pool,
scratch_pool));
/* We will ALWAYS have properties to save (after a not-dry-run merge). */
@@ -4252,14 +4230,10 @@ close_file(void *file_baton,
&new_actual_props,
eb->db,
fb->local_abspath,
- svn_kind_file,
NULL /* server_baseprops (not merging) */,
current_base_props /* pristine_props */,
fake_actual_props /* actual_props */,
regular_prop_changes, /* propchanges */
- TRUE /* base_merge */,
- FALSE /* dry_run */,
- eb->cancel_func, eb->cancel_baton,
scratch_pool,
scratch_pool));
@@ -4476,7 +4450,7 @@ close_edit(void *edit_baton,
have to worry about removing it. */
err = svn_wc__db_base_get_info(&status, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
eb->db, eb->target_abspath,
scratch_pool, scratch_pool);
if (err)
@@ -4633,7 +4607,7 @@ make_editor(svn_revnum_t *target_revisio
eb->ext_patterns = preserved_exts;
apr_pool_cleanup_register(edit_pool, eb, cleanup_edit_baton,
- cleanup_edit_baton_child);
+ apr_pool_cleanup_null);
/* Construct an editor. */
tree_editor->set_target_revision = set_target_revision;
@@ -4674,7 +4648,7 @@ make_editor(svn_revnum_t *target_revisio
err = svn_wc__db_base_get_info(&dir_status, &dir_kind, NULL,
&dir_repos_relpath, NULL, NULL, NULL,
NULL, NULL, &dir_depth, NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
db, eb->target_abspath,
scratch_pool, scratch_pool);
@@ -4730,7 +4704,7 @@ make_editor(svn_revnum_t *target_revisio
NULL, &dir_repos_relpath,
NULL, NULL, NULL, NULL,
NULL, &dir_depth, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
NULL,
db, child_abspath,
iterpool, iterpool));
Modified: subversion/branches/in-repo-authz/subversion/libsvn_wc/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/in-repo-authz/subversion/libsvn_wc/util.c?rev=1418054&r1=1418053&r2=1418054&view=diff
==============================================================================
--- subversion/branches/in-repo-authz/subversion/libsvn_wc/util.c (original)
+++ subversion/branches/in-repo-authz/subversion/libsvn_wc/util.c Thu Dec 6 20:23:54 2012
@@ -610,8 +610,9 @@ svn_wc__fetch_base_func(const char **fil
err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, &checksum,
- NULL, NULL, NULL, NULL, sfb->db,
- local_abspath, scratch_pool, scratch_pool);
+ NULL, NULL, NULL, NULL, NULL,
+ sfb->db, local_abspath,
+ scratch_pool, scratch_pool);
if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
{
svn_error_clear(err);