You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2011/05/24 19:36:09 UTC
svn commit: r1127166 - in /subversion/trunk/subversion:
libsvn_client/update.c tests/cmdline/tree_conflict_tests.py
Author: stsp
Date: Tue May 24 17:36:08 2011
New Revision: 1127166
URL: http://svn.apache.org/viewvc?rev=1127166&view=rev
Log:
As part of issue #3779, "actual-only nodes need regression tests",
make 'svn update' skip targets that are tree conflict victims
instead of performing a potentially no-op update on them.
* subversion/libsvn_client/update.c
(update_internal): Skip targets that are tree-conflict victims.
* subversion/tests/cmdline/tree_conflict_tests.py
(actual_only_node_behaviour): Adjust test case for commit.
Modified:
subversion/trunk/subversion/libsvn_client/update.c
subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py
Modified: subversion/trunk/subversion/libsvn_client/update.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/update.c?rev=1127166&r1=1127165&r2=1127166&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/update.c (original)
+++ subversion/trunk/subversion/libsvn_client/update.c Tue May 24 17:36:08 2011
@@ -206,6 +206,7 @@ update_internal(svn_revnum_t *result_rev
svn_client__external_func_baton_t efb;
struct svn_client__dirent_fetcher_baton_t dfb;
svn_boolean_t server_supports_depth;
+ svn_boolean_t tree_conflicted;
svn_config_t *cfg = ctx->config ? apr_hash_get(ctx->config,
SVN_CONFIG_CATEGORY_CONFIG,
APR_HASH_KEY_STRING) : NULL;
@@ -233,14 +234,20 @@ update_internal(svn_revnum_t *result_rev
SVN_ERR(svn_wc__node_get_base_rev(&revnum, ctx->wc_ctx, anchor_abspath,
pool));
- if (!SVN_IS_VALID_REVNUM(revnum))
+ /* It does not make sense to update tree-conflict victims. */
+ SVN_ERR(svn_wc_conflicted_p3(NULL, NULL, &tree_conflicted,
+ ctx->wc_ctx, local_abspath, pool));
+
+ if (!SVN_IS_VALID_REVNUM(revnum) || tree_conflicted)
{
if (ctx->notify_func2)
{
svn_wc_notify_t *nt;
nt = svn_wc_create_notify(local_abspath,
- svn_wc_notify_update_skip_working_only,
+ tree_conflicted
+ ? svn_wc_notify_skip
+ : svn_wc_notify_update_skip_working_only,
pool);
ctx->notify_func2(ctx->notify_baton2, nt, pool);
Modified: subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py?rev=1127166&r1=1127165&r2=1127166&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py Tue May 24 17:36:08 2011
@@ -1366,8 +1366,9 @@ def actual_only_node_behaviour(sbox):
# update (up)
### update does not fail at all -- needs review
expected_stdout = [
- "Updating '%s':\n" % sbox.ospath('A/foo'),
- "At revision 4.\n",
+ "Skipped '%s'\n" % sbox.ospath('A/foo'),
+ "Summary of conflicts:\n",
+ " Skipped paths: 1\n",
]
expected_stderr = []
run_and_verify_svn(None, expected_stdout, expected_stderr,