Hi,

See attached a patch to fix issue #4128: If the incoming file is identical to 
the existing, locally modified file, we don't flag a conflict any more, but 
notify the user of a successful merge.

[[[
libsvn_wc: no conflict for identical files

[ insubversion/libsvn_wc ]

* merge.c
  (merge_file_trivial): Successful report merged when incoming file is 
identical to existing, locally modified file.

]]]

Thank you,
Markus Schaber

Index: subversion/libsvn_wc/merge.c
===================================================================
--- subversion/libsvn_wc/merge.c    (revision 1348784)
+++ subversion/libsvn_wc/merge.c    (working copy)
@@ -992,6 +992,20 @@

       return SVN_NO_ERROR;
     }
+  else
+    {
+      /* Check whether the existing version equals the right side.
+       * If it does, the local changes reflect the same state as the incoming
+       * file, so there is no conflict. But as the state of the file actually
+       * changes, we intentionally report this as a successful merge. */
+      SVN_ERR(svn_io_files_contents_same_p(&same_contents, 
detranslated_target_abspath,
+                                           right_abspath, scratch_pool));
+      if (same_contents)
+        {
+          *merge_outcome = svn_wc_merge_merged;
+          return SVN_NO_ERROR;
+        }
+    }

   *merge_outcome = svn_wc_merge_no_merge;
   return SVN_NO_ERROR;

Reply via email to