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/08 13:37:51 UTC
svn commit: r1734065 - /subversion/trunk/subversion/libsvn_client/conflicts.c
Author: stsp
Date: Tue Mar 8 12:37:51 2016
New Revision: 1734065
URL: http://svn.apache.org/viewvc?rev=1734065&view=rev
Log:
Add detailed conflict descriptions for conflicts involving incoming
replacements and enhance all the other existing conflict descriptions.
* subversion/libsvn_client/conflicts.c
(conflict_type_specific_setup): Enable fancy descriptions for conflicts
invocling incoming replacements.
(describe_incoming_deletion_upon_switch,
describe_incoming_reverse_addition_upon_switch,
describe_incoming_deletion_upon_merge,
describe_incoming_reverse_addition_upon_merge): Add descriptions for
conflicts involving replacements, and enhance existing descriptions.
(describe_incoming_deletion_upon_update,
describe_incoming_reverse_addition_upon_update): Same, adding a new
'old_rev' parameter for enhanced descriptions.
(describe_incoming_deletion_upon_update): Update caller.
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=1734065&r1=1734064&r2=1734065&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_client/conflicts.c Tue Mar 8 12:37:51 2016
@@ -243,7 +243,8 @@ conflict_type_specific_setup(svn_client_
incoming_change = svn_client_conflict_get_incoming_change(conflict);
/* Set type-specific description and details functions if available. */
- if (incoming_change == svn_wc_conflict_action_delete)
+ if (incoming_change == svn_wc_conflict_action_delete ||
+ incoming_change == svn_wc_conflict_action_replace)
{
conflict->tree_conflict_get_description_func =
conflict_tree_get_description_incoming_delete;
@@ -655,50 +656,153 @@ static const char *
describe_incoming_deletion_upon_update(
struct conflict_tree_incoming_delete_details *details,
svn_node_kind_t victim_node_kind,
+ svn_revnum_t old_rev,
svn_revnum_t new_rev,
apr_pool_t *result_pool)
{
- if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("dir updated to r%lu was deleted or moved "
- "by %s in r%lu"), new_rev,
- details->rev_author, details->deleted_rev);
- else if (victim_node_kind == svn_node_file ||
- victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file updated to r%lu was deleted or moved "
- "by %s in r%lu"), new_rev,
- details->rev_author, details->deleted_rev);
+ if (details->replacing_node_kind == svn_node_file ||
+ details->replacing_node_kind == svn_node_symlink)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory updated from r%ld to r%ld was "
+ "replaced with a file by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file updated from r%ld to r%ld was replaced "
+ "with a file from another line of history by "
+ "%s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item updated from r%ld to r%ld was replaced "
+ "with a file by %s in r%ld"), old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
+ else if (details->replacing_node_kind == svn_node_dir)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory updated from r%ld to r%ld was "
+ "replaced with a directory from another line "
+ "of history by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("directory updated from r%ld to r%ld was "
+ "replaced with a file by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item updated from r%ld to r%ld was replaced "
+ "by %s in r%ld"), old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item updated to r%lu was deleted or moved "
- "by %s in r%lu"), new_rev,
- details->rev_author, details->deleted_rev);
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory updated from r%ld to r%ld was "
+ "deleted or moved by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file updated from r%ld to r%ld was deleted or "
+ "moved by %s in r%ld"), old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item updated from r%ld to r%ld was deleted or "
+ "moved by %s in r%ld"), old_rev, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
}
static const char *
describe_incoming_reverse_addition_upon_update(
struct conflict_tree_incoming_delete_details *details,
svn_node_kind_t victim_node_kind,
+ svn_revnum_t old_rev,
svn_revnum_t new_rev,
apr_pool_t *result_pool)
{
- if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("dir updated to r%lu did not exist before "
- "it was added by %s in r%lu"), new_rev,
- details->rev_author, details->added_rev);
- else if (victim_node_kind == svn_node_file ||
- victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file updated to r%lu did not exist before "
- "it was added by %s in r%lu"), new_rev,
- details->rev_author, details->added_rev);
+ if (details->replacing_node_kind == svn_node_file ||
+ details->replacing_node_kind == svn_node_symlink)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory updated backwards from r%ld to r%ld "
+ "was a file before the replacement made by %s "
+ "in r%ld"), old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file updated backwards from r%ld to r%ld was a "
+ "file from another line of history before the "
+ "replacement made by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item updated from r%ld to r%ld was replaced "
+ "with a file by %s in r%ld"), old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ }
+ else if (details->replacing_node_kind == svn_node_dir)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory updated backwards from r%ld to r%ld "
+ "was a directory from another line of history "
+ "before the replacement made by %s in "
+ "r%ld"), old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file updated backwards from r%ld to r%ld was a "
+ "directory before the replacement made by %s "
+ "in r%ld"), old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item updated from r%ld to r%ld was replaced "
+ "with a directory by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item updated to r%lu did not exist before "
- "it was added by %s in r%lu"), new_rev,
- details->rev_author, details->added_rev);
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory updated backwards from r%ld to r%ld "
+ "did not exist before it was added by %s in "
+ "r%ld"), old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file updated backwards from r%ld to r%ld did "
+ "not exist before it was added by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item updated backwards from r%ld to r%ld did "
+ "not exist before it was added by %s in r%ld"),
+ old_rev, new_rev,
+ details->rev_author, details->added_rev);
+ }
}
static const char *
@@ -711,28 +815,84 @@ describe_incoming_deletion_upon_switch(
svn_revnum_t new_rev,
apr_pool_t *result_pool)
{
- if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("dir switched from %s@r%lu to %s@r%lu was "
- "deleted or moved by %s in r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->deleted_rev);
- else if (victim_node_kind == svn_node_file ||
- victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file switched from %s@r%lu to %s@r%lu was "
- "deleted or moved by %s in r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->deleted_rev);
+ if (details->replacing_node_kind == svn_node_file ||
+ details->replacing_node_kind == svn_node_symlink)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory switched from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a file by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file switched from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a file from another line of "
+ "history by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item switched from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a file by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
+ else if (details->replacing_node_kind == svn_node_dir)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory switched from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a directory from another "
+ "line of history by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file switched from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a directory by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item switched from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a directory by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item switched from %s@r%lu to %s@r%lu was "
- "deleted or moved by %s in r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->deleted_rev);
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory switched from ^/%s@%ld to ^/%s@%ld "
+ "was deleted or moved by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file switched from ^/%s@%ld to ^/%s@%ld was "
+ "deleted or moved by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item switched from ^/%s@%ld to ^/%s@%ld was "
+ "deleted or moved by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
}
static const char *
@@ -745,31 +905,89 @@ describe_incoming_reverse_addition_upon_
svn_revnum_t new_rev,
apr_pool_t *result_pool)
{
- if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("dir switched from %s@r%lu to %s@r%lu did "
- "not exist before it was added by %s in "
- "r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->added_rev);
- else if (victim_node_kind == svn_node_file ||
- victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file switched from %s@r%lu to %s@r%lu did "
- "not exist before it was added by %s in "
- "r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->added_rev);
+ if (details->replacing_node_kind == svn_node_file ||
+ details->replacing_node_kind == svn_node_symlink)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory switched from ^/%s@%ld to ^/%s@%ld "
+ "was a file before the replacement made by %s "
+ "in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file switched from ^/%s@%ld to ^/%s@%ld was a "
+ "file from another line of history before the "
+ "replacement made by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item switched from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a file by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ }
+ else if (details->replacing_node_kind == svn_node_dir)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory switched from ^/%s@%ld to ^/%s@%ld "
+ "was a directory from another line of history "
+ "before the replacement made by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("directory switched from ^/%s@%ld to ^/%s@%ld "
+ "was a file before the replacement made by %s "
+ "in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item switched from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a directory by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item switched from %s@r%lu to %s@r%lu did "
- "not exist before it was added by %s in "
- "r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->added_rev);
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory switched from ^/%s@%ld to ^/%s@%ld "
+ "did not exist before it was added by %s in "
+ "r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file switched from ^/%s@%ld to ^/%s@%ld did "
+ "not exist before it was added by %s in "
+ "r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item switched from ^/%s@%ld to ^/%s@%ld did "
+ "not exist before it was added by %s in "
+ "r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ }
}
static const char *
@@ -782,28 +1000,84 @@ describe_incoming_deletion_upon_merge(
svn_revnum_t new_rev,
apr_pool_t *result_pool)
{
- if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("dir merged from %s@r%lu to %s@r%lu was "
- "deleted or moved by %s in r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->deleted_rev);
- else if (victim_node_kind == svn_node_file ||
- victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file merged from %s@r%lu to %s@r%lu was "
- "deleted or moved by %s in r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->deleted_rev);
+ if (details->replacing_node_kind == svn_node_file ||
+ details->replacing_node_kind == svn_node_symlink)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory merged from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a file by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file merged from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a file from another line of "
+ "history by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item merged from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a file by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
+ else if (details->replacing_node_kind == svn_node_dir)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory merged from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a directory from another "
+ "line of history by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file merged from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a directory by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item merged from ^/%s@%ld to ^/%s@%ld was "
+ "replaced with a directory by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item merged from %s@r%lu to %s@r%lu was "
- "deleted or moved by %s in r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->deleted_rev);
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory merged from ^/%s@%ld to ^/%s@%ld was "
+ "deleted or moved by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file merged from ^/%s@%ld to ^/%s@%ld was "
+ "deleted or moved by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item merged from ^/%s@%ld to ^/%s@%ld was "
+ "deleted or moved by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->deleted_rev);
+ }
}
static const char *
@@ -816,31 +1090,90 @@ describe_incoming_reverse_addition_upon_
svn_revnum_t new_rev,
apr_pool_t *result_pool)
{
- if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("dir merged from %s@r%lu to %s@r%lu did "
- "not exist before it was added by %s in "
- "r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->added_rev);
- else if (victim_node_kind == svn_node_file ||
- victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("file merged from %s@r%lu to %s@r%lu did "
- "not exist before it was added by %s in "
- "r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->added_rev);
+ if (details->replacing_node_kind == svn_node_file ||
+ details->replacing_node_kind == svn_node_symlink)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory reverse-merged from ^/%s@%ld to "
+ "^/%s@%ld was a file before the replacement "
+ "made by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file reverse-merged from ^/%s@%ld to ^/%s@%ld "
+ "was a file from another line of history before "
+ "the replacement made by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item reverse-merged from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a file by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ }
+ else if (details->replacing_node_kind == svn_node_dir)
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory reverse-merged from ^/%s@%ld to "
+ "^/%s@%ld was a directory from another line "
+ "of history before the replacement made by %s "
+ "in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("directory reverse-merged from ^/%s@%ld to "
+ "^/%s@%ld was a file before the replacement "
+ "made by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item reverse-merged from ^/%s@%ld to ^/%s@%ld "
+ "was replaced with a directory by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ }
else
- return apr_psprintf(result_pool,
- _("item merged from %s@r%lu to %s@r%lu did "
- "not exist before it was added by %s in "
- "r%lu"),
- old_repos_relpath, old_rev,
- new_repos_relpath, new_rev,
- details->rev_author, details->added_rev);
+ {
+ if (victim_node_kind == svn_node_dir)
+ return apr_psprintf(result_pool,
+ _("directory reverse-merged from ^/%s@%ld to "
+ "^/%s@%ld did not exist before it was added "
+ "by %s in r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else if (victim_node_kind == svn_node_file ||
+ victim_node_kind == svn_node_symlink)
+ return apr_psprintf(result_pool,
+ _("file reverse-merged from ^/%s@%ld to ^/%s@%ld "
+ "did not exist before it was added by %s in "
+ "r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ else
+ return apr_psprintf(result_pool,
+ _("item reverse-merged from ^/%s@%ld to ^/%s@%ld "
+ "did not exist before it was added by %s in "
+ "r%ld"),
+ old_repos_relpath, old_rev,
+ new_repos_relpath, new_rev,
+ details->rev_author, details->added_rev);
+ }
}
/* Implements tree_conflict_get_description_func_t. */
@@ -890,6 +1223,7 @@ conflict_tree_get_description_incoming_d
{
action = describe_incoming_deletion_upon_update(details,
victim_node_kind,
+ old_rev,
new_rev,
result_pool);
}
@@ -897,7 +1231,7 @@ conflict_tree_get_description_incoming_d
{
/* This deletion is really the reverse change of an addition. */
action = describe_incoming_reverse_addition_upon_update(
- details, victim_node_kind, new_rev, result_pool);
+ details, victim_node_kind, old_rev, new_rev, result_pool);
}
}
else if (conflict_operation == svn_wc_operation_switch)