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 2018/07/21 13:50:07 UTC
svn commit: r1836408 - /subversion/trunk/subversion/libsvn_client/conflicts.c
Author: stsp
Date: Sat Jul 21 13:50:07 2018
New Revision: 1836408
URL: http://svn.apache.org/viewvc?rev=1836408&view=rev
Log:
* subversion/libsvn_client/conflicts.c
(configure_option_local_move_file_merge): Ensure that this resolution
option, which only applies to files, is not applied to directories.
Modified:
subversion/trunk/subversion/libsvn_client/conflicts.c
Modified: subversion/trunk/subversion/libsvn_client/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/conflicts.c?rev=1836408&r1=1836407&r2=1836408&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_client/conflicts.c Sat Jul 21 13:50:07 2018
@@ -10006,20 +10006,33 @@ configure_option_local_move_file_merge(s
svn_wc_operation_t operation;
svn_wc_conflict_action_t incoming_change;
svn_wc_conflict_reason_t local_change;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ svn_node_kind_t incoming_old_kind;
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
+ svn_node_kind_t incoming_new_kind;
operation = svn_client_conflict_get_operation(conflict);
incoming_change = svn_client_conflict_get_incoming_change(conflict);
local_change = svn_client_conflict_get_local_change(conflict);
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ &incoming_old_kind, conflict, scratch_pool,
+ scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
&incoming_new_repos_relpath, &incoming_new_pegrev,
- NULL, conflict, scratch_pool,
+ &incoming_new_kind, conflict, scratch_pool,
scratch_pool));
if (operation == svn_wc_operation_merge &&
incoming_change == svn_wc_conflict_action_edit &&
- local_change == svn_wc_conflict_reason_missing)
+ local_change == svn_wc_conflict_reason_missing &&
+ /* We do not support this case for directories yet. */
+ (incoming_old_kind == svn_node_file ||
+ incoming_old_kind == svn_node_none) &&
+ (incoming_new_kind == svn_node_file ||
+ incoming_new_kind == svn_node_none))
{
struct conflict_tree_local_missing_details *details;