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;