summaryrefslogtreecommitdiffstats
path: root/subversion/libsvn_client/merge.c
diff options
context:
space:
mode:
authorsvnmir <svnmir@FreeBSD.org>2015-08-09 04:37:48 +0000
committersvnmir <svnmir@FreeBSD.org>2015-08-09 04:37:48 +0000
commit91308aec6ca93cab82659cd43b3f6a83d366350b (patch)
tree78a13bd0acf7405df6eb6ca94a4e354d124065a6 /subversion/libsvn_client/merge.c
parent0d1e05fe9c6027aaf742eb9b8b05f4dbefb92e2e (diff)
downloadFreeBSD-src-91308aec6ca93cab82659cd43b3f6a83d366350b.zip
FreeBSD-src-91308aec6ca93cab82659cd43b3f6a83d366350b.tar.gz
Vendor import subversion-1.8.14
Diffstat (limited to 'subversion/libsvn_client/merge.c')
-rw-r--r--subversion/libsvn_client/merge.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/subversion/libsvn_client/merge.c b/subversion/libsvn_client/merge.c
index b314e84..f0ff9a2 100644
--- a/subversion/libsvn_client/merge.c
+++ b/subversion/libsvn_client/merge.c
@@ -1258,13 +1258,14 @@ record_skip(merge_cmd_baton_t *merge_b,
svn_node_kind_t kind,
svn_wc_notify_action_t action,
svn_wc_notify_state_t state,
+ struct merge_dir_baton_t *pdb,
apr_pool_t *scratch_pool)
{
if (merge_b->record_only)
return SVN_NO_ERROR; /* ### Why? - Legacy compatibility */
- if (merge_b->merge_source.ancestral
- || merge_b->reintegrate_merge)
+ if ((merge_b->merge_source.ancestral || merge_b->reintegrate_merge)
+ && !(pdb && pdb->shadowed))
{
store_path(merge_b->skipped_abspaths, local_abspath);
}
@@ -1979,7 +1980,8 @@ merge_file_changed(const char *relpath,
/* We haven't notified for this node yet: report a skip */
SVN_ERR(record_skip(merge_b, local_abspath, svn_node_file,
svn_wc_notify_update_shadowed_update,
- fb->skip_reason, scratch_pool));
+ fb->skip_reason, fb->parent_baton,
+ scratch_pool));
}
return SVN_NO_ERROR;
@@ -2148,7 +2150,8 @@ merge_file_added(const char *relpath,
/* We haven't notified for this node yet: report a skip */
SVN_ERR(record_skip(merge_b, local_abspath, svn_node_file,
svn_wc_notify_update_shadowed_add,
- fb->skip_reason, scratch_pool));
+ fb->skip_reason, fb->parent_baton,
+ scratch_pool));
}
return SVN_NO_ERROR;
@@ -2359,7 +2362,8 @@ merge_file_deleted(const char *relpath,
/* We haven't notified for this node yet: report a skip */
SVN_ERR(record_skip(merge_b, local_abspath, svn_node_file,
svn_wc_notify_update_shadowed_delete,
- fb->skip_reason, scratch_pool));
+ fb->skip_reason, fb->parent_baton,
+ scratch_pool));
}
return SVN_NO_ERROR;
@@ -2723,6 +2727,12 @@ merge_dir_opened(void **new_dir_baton,
/* Set a tree conflict */
db->shadowed = TRUE;
db->tree_conflict_reason = svn_wc_conflict_reason_obstructed;
+
+ if ((merge_b->merge_source.ancestral || merge_b->reintegrate_merge)
+ && !(pdb && pdb->shadowed))
+ {
+ store_path(merge_b->skipped_abspaths, local_abspath);
+ }
}
}
@@ -2847,7 +2857,8 @@ merge_dir_changed(const char *relpath,
/* We haven't notified for this node yet: report a skip */
SVN_ERR(record_skip(merge_b, local_abspath, svn_node_dir,
svn_wc_notify_update_shadowed_update,
- db->skip_reason, scratch_pool));
+ db->skip_reason, db->parent_baton,
+ scratch_pool));
}
return SVN_NO_ERROR;
@@ -2931,7 +2942,8 @@ merge_dir_added(const char *relpath,
/* We haven't notified for this node yet: report a skip */
SVN_ERR(record_skip(merge_b, local_abspath, svn_node_dir,
svn_wc_notify_update_shadowed_add,
- db->skip_reason, scratch_pool));
+ db->skip_reason, db->parent_baton,
+ scratch_pool));
}
return SVN_NO_ERROR;
@@ -3098,7 +3110,8 @@ merge_dir_deleted(const char *relpath,
/* We haven't notified for this node yet: report a skip */
SVN_ERR(record_skip(merge_b, local_abspath, svn_node_dir,
svn_wc_notify_update_shadowed_delete,
- db->skip_reason, scratch_pool));
+ db->skip_reason, db->parent_baton,
+ scratch_pool));
}
return SVN_NO_ERROR;
@@ -3278,13 +3291,14 @@ merge_node_absent(const char *relpath,
apr_pool_t *scratch_pool)
{
merge_cmd_baton_t *merge_b = processor->baton;
+ struct merge_dir_baton_t *db = dir_baton;
const char *local_abspath = svn_dirent_join(merge_b->target->abspath,
relpath, scratch_pool);
SVN_ERR(record_skip(merge_b, local_abspath, svn_node_unknown,
svn_wc_notify_skip, svn_wc_notify_state_missing,
- scratch_pool));
+ db, scratch_pool));
return SVN_NO_ERROR;
}
OpenPOWER on IntegriCloud