As was recently pointed out by Andrew Reedick on the users list,
currently, if 'svn merge' tries to add a file and that results in a
conflict (say there was a different file with the same name added on
both a branch and the trunk, and then you try and merge the branch
into the trunk) we print out an A, not a C. There's a trivial change
to fix that, but it causes some test failures, so I figured I should
bring it up here to make sure that we really should print C. I mean
it makes sense to me, but clearly someone at some point decided that
printing A was correct, otherwise they wouldn't have wrote the tests
that confirmed it...
Just an oversight?
Here's the diff to fix the problem (minus fixes to merge tests, those
are trivial enough though):
[[[
When a merge of an added file results in a conflict display a C,
not an A.
* subversion/svn/notify.c
(notify): Check for conflicts when a merge results in an add, and
alter output accordingly.
]]]
Index: subversion/svn/notify.c
===================================================================
--- subversion/svn/notify.c (revision 20646)
+++ subversion/svn/notify.c (working copy)
@@ -86,8 +86,16 @@
case svn_wc_notify_update_add:
nb->received_some_change = TRUE;
- if ((err = svn_cmdline_printf(pool, "A %s\n", path_local)))
- goto print_error;
+ if (n->content_state == svn_wc_notify_state_conflicted)
+ {
+ if ((err = svn_cmdline_printf(pool, "C %s\n", path_local)))
+ goto print_error;
+ }
+ else
+ {
+ if ((err = svn_cmdline_printf(pool, "A %s\n", path_local)))
+ goto print_error;
+ }
break;
case svn_wc_notify_restore:
-garrett
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jul 13 23:07:03 2006