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(