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 2016/03/21 16:32:07 UTC
svn commit: r1735987 - /subversion/trunk/subversion/libsvn_client/conflicts.c
Author: stsp
Date: Mon Mar 21 15:32:07 2016
New Revision: 1735987
URL: http://svn.apache.org/viewvc?rev=1735987&view=rev
Log:
Ensure that mergeinfo-style syntax in conflict descriptions is shown as
an inclusive range, rather than showing an excluded 'old' revision number.
So, for instance, svn merge -r4:6 now results in ^/trunk:5-6 being displayed,
rather than ^/trunk:4-6 (which doesn't match what mergeinfo would record).
In cases where only a single revision r6 was merged, display ^/trunk:6.
* subversion/libsvn_client/conflicts.c
(describe_incoming_add_upon_merge,
describe_incoming_reverse_deletion_upon_merge
conflict_tree_get_description_incoming_edit): Show mergeinfo-style ranges.
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=1735987&r1=1735986&r2=1735987&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_client/conflicts.c Mon Mar 21 15:32:07 2016
@@ -1901,24 +1901,51 @@ describe_incoming_add_upon_merge(
apr_pool_t *result_pool)
{
if (new_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("directory appeared during merge of ^/%s:%ld-%ld; "
- "it was added by %s in r%ld"),
- new_repos_relpath, old_rev, new_rev,
- details->added_rev_author, details->added_rev);
+ {
+ if (old_rev + 1 == new_rev)
+ return apr_psprintf(result_pool,
+ _("directory appeared during merge of "
+ "^/%s:%ld; it was added by %s in r%ld"),
+ new_repos_relpath, new_rev,
+ details->added_rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("directory appeared during merge of "
+ "^/%s:%ld-%ld; it was added by %s in r%ld"),
+ new_repos_relpath, old_rev + 1, new_rev,
+ details->added_rev_author, details->added_rev);
+ }
else if (new_node_kind == svn_node_file ||
new_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file appeared during merge of ^/%s:%ld-%ld; "
- "it was added by %s in r%ld"),
- new_repos_relpath, old_rev, new_rev,
- details->added_rev_author, details->added_rev);
+ {
+ if (old_rev + 1 == new_rev)
+ return apr_psprintf(result_pool,
+ _("file appeared during merge of "
+ "^/%s:%ld; it was added by %s in r%ld"),
+ new_repos_relpath, new_rev,
+ details->added_rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("file appeared during merge of "
+ "^/%s:%ld-%ld; it was added by %s in r%ld"),
+ new_repos_relpath, old_rev + 1, new_rev,
+ details->added_rev_author, details->added_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item appeared during merge of ^/%s:%ld-%ld; "
- "it was added by %s in r%ld"),
- new_repos_relpath, old_rev, new_rev,
- details->added_rev_author, details->added_rev);
+ {
+ if (old_rev + 1 == new_rev)
+ return apr_psprintf(result_pool,
+ _("item appeared during merge of "
+ "^/%s:%ld; it was added by %s in r%ld"),
+ new_repos_relpath, new_rev,
+ details->added_rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item appeared during merge of "
+ "^/%s:%ld-%ld; it was added by %s in r%ld"),
+ new_repos_relpath, old_rev + 1, new_rev,
+ details->added_rev_author, details->added_rev);
+ }
return SVN_NO_ERROR;
}
@@ -1932,24 +1959,58 @@ describe_incoming_reverse_deletion_upon_
apr_pool_t *result_pool)
{
if (new_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("directory appeared during reverse-merge of "
- "^/%s:%ld-%ld; it was deleted by %s in r%ld"),
- old_repos_relpath, new_rev, old_rev,
- details->deleted_rev_author, details->deleted_rev);
+ {
+ if (new_rev + 1 == old_rev)
+ return apr_psprintf(result_pool,
+ _("directory appeared during reverse-merge of "
+ "^/%s:%ld; it was deleted by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ details->deleted_rev_author,
+ details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("directory appeared during reverse-merge of "
+ "^/%s:%ld-%ld; it was deleted by %s in r%ld"),
+ old_repos_relpath, new_rev, old_rev - 1,
+ details->deleted_rev_author,
+ details->deleted_rev);
+ }
else if (new_node_kind == svn_node_file ||
new_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file appeared during reverse-merge of "
- "^/%s:%ld-%ld; it was deleted by %s in r%ld"),
- old_repos_relpath, new_rev, old_rev,
- details->deleted_rev_author, details->deleted_rev);
+ {
+ if (new_rev + 1 == old_rev)
+ return apr_psprintf(result_pool,
+ _("file appeared during reverse-merge of "
+ "^/%s:%ld; it was deleted by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ details->deleted_rev_author,
+ details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("file appeared during reverse-merge of "
+ "^/%s:%ld-%ld; it was deleted by %s in r%ld"),
+ old_repos_relpath, new_rev + 1, old_rev,
+ details->deleted_rev_author,
+ details->deleted_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item appeared during reverse-merge of "
- "^/%s:%ld-%ld; it was deleted by %s in r%ld"),
- old_repos_relpath, new_rev, old_rev,
- details->deleted_rev_author, details->deleted_rev);
+ {
+ if (new_rev + 1 == old_rev)
+ return apr_psprintf(result_pool,
+ _("item appeared during reverse-merge of "
+ "^/%s:%ld; it was deleted by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ details->deleted_rev_author,
+ details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item appeared during reverse-merge of "
+ "^/%s:%ld-%ld; it was deleted by %s in r%ld"),
+ old_repos_relpath, new_rev + 1, old_rev,
+ details->deleted_rev_author,
+ details->deleted_rev);
+ }
+
return SVN_NO_ERROR;
}
@@ -2290,13 +2351,47 @@ conflict_tree_get_description_incoming_e
"during switch to ^/%s@r%ld:"),
new_repos_relpath, new_rev);
else if (conflict_operation == svn_wc_operation_merge)
- action = apr_psprintf(scratch_pool,
- _("changes from the following revisions have not "
- "yet been merged from ^/%s:%ld-%ld:"),
- old_rev < new_rev ? new_repos_relpath
- : old_repos_relpath,
- old_rev < new_rev ? old_rev : new_rev,
- old_rev < new_rev ? new_rev : old_rev);
+ {
+ if (old_rev < new_rev)
+ {
+ if (old_rev + 1 == new_rev)
+ {
+ action = apr_psprintf(scratch_pool,
+ _("changes arrived during merge of "
+ "^/%s:%ld:"),
+ new_repos_relpath, new_rev);
+
+ *description = apr_psprintf(result_pool, _("%s, %s"),
+ reason, action);
+ return SVN_NO_ERROR;
+ }
+ else
+ action = apr_psprintf(scratch_pool,
+ _("changes from the following revisions "
+ "arrived during merge of ^/%s:%ld-%ld:"),
+ new_repos_relpath, old_rev + 1, new_rev);
+ }
+ else
+ {
+ if (new_rev + 1 == old_rev)
+ {
+ action = apr_psprintf(scratch_pool,
+ _("changes arrived during reverse-merge "
+ "of ^/%s:%ld:"),
+ new_repos_relpath, old_rev);
+
+ *description = apr_psprintf(result_pool, _("%s, %s"),
+ reason, action);
+ return SVN_NO_ERROR;
+ }
+ else
+ action = apr_psprintf(scratch_pool,
+ _("changes from the following revisions "
+ "arrived during reverse-merge of "
+ "^/%s:%ld-%ld:"),
+ new_repos_relpath, new_rev + 1, old_rev);
+ }
+ }
for (i = 0; i < edits->nelts; i++)
{