Hi,
based on the talk on IRC with stsp and Bert I'd like to propose the
following patch which would resolve an issue in TSVN when selecting to
prefer the local version of a binary file in conflict (see: "code
location related to investigate potential issue in resolve dialog"
thread on the TSVN user's mailing list for further details).
[[[
Teach build_text_conflict_resolve_items() to skip installling files, if
these
are not required to resolve the conflict.
* libsvn_wc/conflicts.c
(build_text_conflict_resolve_items): introduce new allow_ski_install
variable
and set it in the two cases where we
simply accept the current local
file to
resolve the conflict.
]]]
--
Regards,
Stefan Hett
Index: subversion/libsvn_wc/conflicts.c
===================================================================
--- subversion/libsvn_wc/conflicts.c (revision 1754140)
+++ subversion/libsvn_wc/conflicts.c (working copy)
@@ -1583,6 +1583,7 @@
svn_skel_t *work_item;
const char *install_from_abspath = NULL;
svn_boolean_t remove_source = FALSE;
+ svn_boolean_t allow_skip_install = FALSE;
*work_items = NULL;
@@ -1624,6 +1625,12 @@
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).
+ */
+ allow_skip_install = TRUE;
break;
}
case svn_wc_conflict_choose_theirs_conflict:
@@ -1665,9 +1672,8 @@
good to use". */
case svn_wc_conflict_choose_merged:
{
- install_from_abspath = merged_file
- ? merged_file
- : local_abspath;
+ install_from_abspath = merged_file;
+ allow_skip_install = TRUE;
break;
}
case svn_wc_conflict_choose_postpone:
@@ -1679,7 +1685,7 @@
SVN_ERR_ASSERT(choice == svn_wc_conflict_choose_postpone);
}
- if (install_from_abspath == NULL)
+ if (install_from_abspath == NULL && !allow_skip_install)
return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
_("Conflict on '%s' could not be resolved "
"because the chosen version of the file "