You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2012/10/05 17:27:22 UTC
svn commit: r1394588 - in /subversion/trunk/subversion:
libsvn_client/repos_diff.c tests/cmdline/merge_tree_conflict_tests.py
Author: cmpilato
Date: Fri Oct 5 15:27:21 2012
New Revision: 1394588
URL: http://svn.apache.org/viewvc?rev=1394588&view=rev
Log:
Fix issue #3802 ("redundant tree conflict notifications with serf when
merging replacement").
* subversion/libsvn_client/repos_diff.c
(close_directory): Make the section of code which claims to "notify
about any deleted paths within this directory that have not
already been notified" actually only notify about deleted paths
within the given directory ... instead of all
not-yet-notified-about deleted paths anywhere in the editor drive
tree. (This sounds like a fault of the notification code, but is
really just more fallout from ra_serf's violation of editor-v1
drive ordering constraints. As in the past, we sweep it under the
rug and await editor-v2's promise of goodness.)
* subversion/tests/cmdline/merge_tree_conflict_tests.py
(merge_replace_causes_tree_conflict): Remove @XFail() decorator.
Modified:
subversion/trunk/subversion/libsvn_client/repos_diff.c
subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py
Modified: subversion/trunk/subversion/libsvn_client/repos_diff.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/repos_diff.c?rev=1394588&r1=1394587&r2=1394588&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/repos_diff.c (original)
+++ subversion/trunk/subversion/libsvn_client/repos_diff.c Fri Oct 5 15:27:21 2012
@@ -1151,6 +1151,13 @@ close_directory(void *dir_baton,
const char *deleted_path = svn__apr_hash_index_key(hi);
deleted_path_notify_t *dpn = svn__apr_hash_index_val(hi);
+ /* Ignore paths which are not children of b->path. (There
+ should be none due to editor ordering constraints, but
+ ra_serf drops the ball here -- see issue #3802 for
+ details.) */
+ if (! svn_relpath_skip_ancestor(b->path, deleted_path))
+ continue;
+
notify = svn_wc_create_notify(deleted_path, dpn->action, pool);
notify->kind = dpn->kind;
notify->content_state = notify->prop_state = dpn->state;
Modified: subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py?rev=1394588&r1=1394587&r2=1394588&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py Fri Oct 5 15:27:21 2012
@@ -1671,7 +1671,6 @@ def merge_replace_setup(sbox):
#----------------------------------------------------------------------
# ra_serf causes duplicate notifications with this test:
-@XFail(svntest.main.is_ra_type_dav_serf)
@Issue(3802)
def merge_replace_causes_tree_conflict(sbox):
"replace vs. edit tree-conflicts"