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/06/06 15:52:11 UTC
svn commit: r1747033 - /subversion/trunk/subversion/libsvn_client/conflicts.c
Author: stsp
Date: Mon Jun 6 15:52:11 2016
New Revision: 1747033
URL: http://svn.apache.org/viewvc?rev=1747033&view=rev
Log:
When describing conflicts which involve replacements, and the replaced
node was also moved away, mention this move operation in the description.
* subversion/libsvn_client/conflicts.c
(describe_incoming_deletion_upon_update,
describe_incoming_deletion_upon_switch,
describe_incoming_deletion_upon_merge): Display move conflict details
in cases which involve replacements.
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=1747033&r1=1747032&r2=1747033&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_client/conflicts.c Mon Jun 6 15:52:11 2016
@@ -1786,46 +1786,142 @@ describe_incoming_deletion_upon_update(
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);
+ {
+ const char *description =
+ 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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced directory was moved to "
+ "'^/%s'."), description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
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);
+ {
+ const char *description =
+ 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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced file was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
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);
+ {
+ const char *description =
+ 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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced item was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
}
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);
+ {
+ const char *description =
+ 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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced directory was moved to "
+ "'^/%s'."), description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("File 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->deleted_rev);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced file was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
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);
+ {
+ const char *description =
+ 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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced item was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
}
else
{
@@ -1992,60 +2088,156 @@ describe_incoming_deletion_upon_switch(
details->replacing_node_kind == svn_node_symlink)
{
if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("Directory switched from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("Directory switched from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced directory was moved "
+ "to '^/%s'."), description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else if (victim_node_kind == svn_node_file ||
victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("File switched from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("File switched from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced file was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else
- return apr_psprintf(result_pool,
- _("Item switched from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("Item switched from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced item was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
}
else if (details->replacing_node_kind == svn_node_dir)
{
if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("Directory switched from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("Directory switched from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced directory was moved to "
+ "'^/%s'."), description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else if (victim_node_kind == svn_node_file ||
victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("File switched from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("File switched from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced file was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else
- return apr_psprintf(result_pool,
- _("Item switched from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("Item switched from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced item was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
}
else
{
@@ -2253,23 +2445,55 @@ describe_incoming_deletion_upon_merge(
details->replacing_node_kind == svn_node_symlink)
{
if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("Directory merged from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("Directory merged from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced directory was moved to "
+ "'^/%s'."), description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else if (victim_node_kind == svn_node_file ||
victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("File merged from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("File merged from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced file was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else
return apr_psprintf(result_pool,
_("Item merged from\n"
@@ -2282,31 +2506,79 @@ describe_incoming_deletion_upon_merge(
else if (details->replacing_node_kind == svn_node_dir)
{
if (victim_node_kind == svn_node_dir)
- return apr_psprintf(result_pool,
- _("Directory merged from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("Directory merged from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced directory was moved to "
+ "'^/%s'."), description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else if (victim_node_kind == svn_node_file ||
victim_node_kind == svn_node_symlink)
- return apr_psprintf(result_pool,
- _("File merged from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("File merged from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\n"
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced file was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
else
- return apr_psprintf(result_pool,
- _("Item merged from\n"
- "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
- "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);
+ {
+ const char *description =
+ apr_psprintf(result_pool,
+ _("Item merged from\n"
+ "'^/%s@%ld'\nto\n'^/%s@%ld'\nwas "
+ "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);
+ if (details->move)
+ {
+ description =
+ apr_psprintf(result_pool,
+ _("%s\nThe replaced item was moved to '^/%s'."),
+ description,
+ details->move->moved_to_repos_relpath);
+ return append_moved_to_chain_description(description,
+ details->move->next,
+ result_pool,
+ scratch_pool);
+ }
+ return description;
+ }
}
else
{