On Thu, Oct 11, 2012 at 3:01 PM, Stefan Sperling <s...@elego.de> wrote: > On Thu, Oct 11, 2012 at 12:20:32PM -0400, Hyrum K Wright wrote: >> > + /* Compute the incoming side of the conflict ('action'). */ >> > + if (their_value == NULL) >> > + desc->action = svn_wc_conflict_action_delete; >> > + else if (my_value == NULL) >> > + desc->action = svn_wc_conflict_action_add; >> >> Wrong enum type assignment here, the source is an >> svn_wc_conflict_reason_t, but the destination is an >> svn_wc_conflict_action_t. > > Really? I see neither svn_wc_conflict_action_delete nor > svn_wc_conflict_action_add in the definition of svn_wc_conflict_reason_t.
Whoops, sorry, I should have referenced a different line below, currently line 2003. > >> While this might work now, it feels like a >> real opportunity for obscure bugs later. (And my compiler complains >> about it. :) ) >> >> > + else >> > + desc->action = svn_wc_conflict_action_edit; >> >> Same. > > Seems fine to me. Both are saying 'action'... did you mean to > quote a different part of the code? Yes, I meant to quote a different part. This is the compiler warning I see: subversion/libsvn_wc/conflicts.c:2003:24: warning: implicit conversion from enumeration type 'enum svn_wc_conflict_reason_t' to different enumeration type 'svn_wc_conflict_action_t' (aka 'enum svn_wc_conflict_action_t') [-Wconversion] desc->action = svn_wc_conflict_reason_added; ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ subversion/libsvn_wc/conflicts.c:2005:24: warning: implicit conversion from enumeration type 'enum svn_wc_conflict_reason_t' to different enumeration type 'svn_wc_conflict_action_t' (aka 'enum svn_wc_conflict_action_t') [-Wconversion] desc->action = svn_wc_conflict_reason_edited; ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Does this (untested) patch make sense? [[[ Index: subversion/libsvn_wc/conflicts.c =================================================================== --- subversion/libsvn_wc/conflicts.c (revision 1397318) +++ subversion/libsvn_wc/conflicts.c (working copy) @@ -2000,9 +2000,9 @@ if (my_value == NULL) desc->reason = svn_wc_conflict_reason_deleted; else if (their_value == NULL) - desc->action = svn_wc_conflict_reason_added; + desc->reason = svn_wc_conflict_reason_added; else - desc->action = svn_wc_conflict_reason_edited; + desc->reason = svn_wc_conflict_reason_edited; /* ### This should be changed. The prej file should be stored * ### separately from the other files. We need to rev the ]]] -Hyrum