diff options
Diffstat (limited to 'subversion/svn/merge-cmd.c')
-rw-r--r-- | subversion/svn/merge-cmd.c | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/subversion/svn/merge-cmd.c b/subversion/svn/merge-cmd.c index f5c19198a5b29..140a39fad73f7 100644 --- a/subversion/svn/merge-cmd.c +++ b/subversion/svn/merge-cmd.c @@ -545,27 +545,31 @@ retry: "fix invalid mergeinfo in target with 'svn propset'")); } - /* Run the interactive resolver if conflicts were raised. */ - SVN_ERR(svn_cl__conflict_stats_get_paths(&conflicted_paths, conflict_stats, - pool, pool)); - if (conflicted_paths) + if (! opt_state->dry_run) { - SVN_ERR(svn_cl__walk_conflicts(conflicted_paths, conflict_stats, - opt_state, ctx, pool)); - if (merge_err && - svn_error_root_cause(merge_err)->apr_err == SVN_ERR_WC_FOUND_CONFLICT) + /* Run the interactive resolver if conflicts were raised. */ + SVN_ERR(svn_cl__conflict_stats_get_paths(&conflicted_paths, + conflict_stats, pool, pool)); + if (conflicted_paths) { - svn_error_t *err; - - /* Check if all conflicts were resolved just now. */ - err = svn_cl__conflict_stats_get_paths(&conflicted_paths, - conflict_stats, pool, pool); - if (err) - merge_err = svn_error_compose_create(merge_err, err); - else if (conflicted_paths == NULL) + SVN_ERR(svn_cl__walk_conflicts(conflicted_paths, conflict_stats, + opt_state, ctx, pool)); + if (merge_err && svn_error_root_cause(merge_err)->apr_err == + SVN_ERR_WC_FOUND_CONFLICT) { - svn_error_clear(merge_err); - goto retry; /* ### conflicts resolved; continue merging */ + svn_error_t *err; + + /* Check if all conflicts were resolved just now. */ + err = svn_cl__conflict_stats_get_paths(&conflicted_paths, + conflict_stats, + pool, pool); + if (err) + merge_err = svn_error_compose_create(merge_err, err); + else if (conflicted_paths == NULL) + { + svn_error_clear(merge_err); + goto retry; /* ### conflicts resolved; continue merging */ + } } } } |