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 2012/02/17 02:42:51 UTC

svn commit: r1245284 - in /subversion/trunk/subversion: libsvn_client/merge.c tests/cmdline/merge_reintegrate_tests.py

Author: stsp
Date: Fri Feb 17 01:42:50 2012
New Revision: 1245284

URL: http://svn.apache.org/viewvc?rev=1245284&view=rev
Log:
Fix issue #4052, "reintegrate merge and deleted symbolic links".

Merges would erroneously flag a tree conflict for any incoming deletion
of a symlink.

* subversion/libsvn_client/merge.c
  (files_same_p): Properly compare symlinks with one another, preventing a
   spurious tree conflict on symlinks via merge_file_deleted(). This used to
   work fine in 1.6. But at some point during 1.7 development it accidentally
   stopped working. The regression was probably introduced in r961254, since
   it changed the code path used for file comparison. I haven't built an older
   client to verify this claim, though. Too bad this slipped through the test
   suite back then.

* subversion/tests/cmdline/merge_reintegrate_tests.py
  (reintegrate_symlink_deletion): Remove XFail marker.

Modified:
    subversion/trunk/subversion/libsvn_client/merge.c
    subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1245284&r1=1245283&r2=1245284&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Fri Feb 17 01:42:50 2012
@@ -1995,10 +1995,14 @@ files_same_p(svn_boolean_t *same,
       svn_opt_revision_t working_rev = { svn_opt_revision_working, { 0 } };
 
       /* Compare the file content, translating 'mine' to 'normal' form. */
-      SVN_ERR(svn_client__get_normalized_stream(&mine_stream, wc_ctx,
-                                                mine_abspath, &working_rev,
-                                                FALSE, TRUE, NULL, NULL,
-                                                scratch_pool, scratch_pool));
+      if (svn_prop_get_value(working_props, SVN_PROP_SPECIAL) != NULL)
+        SVN_ERR(svn_subst_read_specialfile(&mine_stream, mine_abspath,
+                                           scratch_pool, scratch_pool));
+      else
+        SVN_ERR(svn_client__get_normalized_stream(&mine_stream, wc_ctx,
+                                                  mine_abspath, &working_rev,
+                                                  FALSE, TRUE, NULL, NULL,
+                                                  scratch_pool, scratch_pool));
 
       SVN_ERR(svn_stream_open_readonly(&older_stream, older_abspath,
                                        scratch_pool, scratch_pool));

Modified: subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py?rev=1245284&r1=1245283&r2=1245284&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py Fri Feb 17 01:42:50 2012
@@ -2544,7 +2544,6 @@ def reintegrate_replaced_source(sbox):
   
 #----------------------------------------------------------------------
 @SkipUnless(svntest.main.is_posix_os)
-@XFail()
 @Issue(4052)
 def reintegrate_symlink_deletion(sbox):
   "reintegrate symlink deletion"