diff options
author | Peter Wemm <peter@FreeBSD.org> | 2016-12-01 07:45:05 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2016-12-01 07:45:05 +0000 |
commit | 608944fa5a78d7f517c9c73a7ded6c130cc97b83 (patch) | |
tree | 9dce7c56ce4cbd36bb5457661d50b23d30c3533c /subversion/libsvn_wc/conflicts.c | |
parent | c94cceea9c2262c5b2ad5f215bb9a8ae48b02764 (diff) |
Diffstat (limited to 'subversion/libsvn_wc/conflicts.c')
-rw-r--r-- | subversion/libsvn_wc/conflicts.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/subversion/libsvn_wc/conflicts.c b/subversion/libsvn_wc/conflicts.c index ae0b348c354c..f04c6de59481 100644 --- a/subversion/libsvn_wc/conflicts.c +++ b/subversion/libsvn_wc/conflicts.c @@ -1622,7 +1622,14 @@ build_text_conflict_resolve_items(svn_skel_t **work_items, } case svn_wc_conflict_choose_mine_full: { - install_from_abspath = mine_abspath; + /* In case of selecting to resolve the conflict choosing the full + own file, allow the text conflict resolution to just take the + existing local file if no merged file was present (case: binary + file conflicts do not generate a locally merge file). + */ + install_from_abspath = mine_abspath + ? mine_abspath + : local_abspath; break; } case svn_wc_conflict_choose_theirs_conflict: @@ -1633,6 +1640,15 @@ build_text_conflict_resolve_items(svn_skel_t **work_items, ? svn_diff_conflict_display_latest : svn_diff_conflict_display_modified; + if (mine_abspath == NULL) + return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL, + _("Conflict on '%s' cannot be resolved to " + "'theirs-conflict' or 'mine-conflict' " + "because a merged version of the file " + "cannot be created."), + svn_dirent_local_style(local_abspath, + scratch_pool)); + SVN_ERR(merge_showing_conflicts(&install_from_abspath, db, local_abspath, style, merge_options, |