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/08/05 15:41:19 UTC

svn commit: r1369584 - /subversion/trunk/subversion/svn/file-merge.c

Author: stsp
Date: Sun Aug  5 13:41:18 2012
New Revision: 1369584

URL: http://svn.apache.org/viewvc?rev=1369584&view=rev
Log:
* subversion/svn/file-merge.c
  (svn_cl__merge_file): Leave the file in conflict if installing the merged
   result fails and extend the corresponding error message accordingly.

Modified:
    subversion/trunk/subversion/svn/file-merge.c

Modified: subversion/trunk/subversion/svn/file-merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/file-merge.c?rev=1369584&r1=1369583&r2=1369584&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/file-merge.c (original)
+++ subversion/trunk/subversion/svn/file-merge.c Sun Aug  5 13:41:18 2012
@@ -889,8 +889,9 @@ svn_cl__merge_file(const char *base_path
   SVN_ERR(svn_io_file_close(latest_file, scratch_pool));
   SVN_ERR(svn_io_file_close(merged_file, scratch_pool));
 
+  /* Start out assuming that conflicts remain. */
   if (remains_in_conflict)
-    *remains_in_conflict = (fmb.remains_in_conflict || fmb.abort_merge);
+    *remains_in_conflict = TRUE;
 
   if (fmb.abort_merge)
     {
@@ -906,12 +907,21 @@ svn_cl__merge_file(const char *base_path
 
   SVN_ERR_W(svn_io_file_move(merged_file_name, merged_path, scratch_pool),
             apr_psprintf(scratch_pool,
-                         _("Could not write merged result to '%s', "
-                         "saved instead at '%s'.\n"),
-                         svn_dirent_local_style(merged_path,
-                                                scratch_pool),
+                         _("Could not write merged result to '%s', saved "
+                           "instead at '%s'.\n'%s' remains in conflict.\n"),
+                         svn_dirent_local_style(
+                           svn_dirent_skip_ancestor(path_prefix, merged_path),
+                           scratch_pool),
                          svn_dirent_local_style(merged_file_name,
-                                                scratch_pool)));
+                                                scratch_pool),
+                         svn_dirent_local_style(
+                           svn_dirent_skip_ancestor(path_prefix, wc_path),
+                           scratch_pool)));
+
+  /* The merge was not aborted and we could install the merged result. The
+   * file remains in conflict unless all conflicting sections were resolved. */
+  if (remains_in_conflict)
+    *remains_in_conflict = fmb.remains_in_conflict;
 
   if (fmb.remains_in_conflict)
     SVN_ERR(svn_cmdline_printf(