diff options
author | svnmir <svnmir@FreeBSD.org> | 2015-08-09 04:37:48 +0000 |
---|---|---|
committer | svnmir <svnmir@FreeBSD.org> | 2015-08-09 04:37:48 +0000 |
commit | 91308aec6ca93cab82659cd43b3f6a83d366350b (patch) | |
tree | 78a13bd0acf7405df6eb6ca94a4e354d124065a6 /subversion/libsvn_client/merge.c | |
parent | 0d1e05fe9c6027aaf742eb9b8b05f4dbefb92e2e (diff) | |
download | FreeBSD-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.c | 32 |
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; } |