On Thu, Oct 20, 2011 at 05:23:37PM +0200, Stefan Sperling wrote:
> On Thu, Oct 20, 2011 at 05:17:36PM +0200, Stefan Sperling wrote:
> > On Thu, Oct 20, 2011 at 04:45:26PM +0200, Stefan Sperling wrote:
> > > On Thu, Oct 20, 2011 at 02:28:43PM +0200, Søren Thing Andersen wrote:
> > > > # But updating breaks on the changed link:
> > > >     svn up wc3
> > > > 
> > > > The last command dies:
> > > > $ svn up wc3
> > > > Updating 'wc3':
> > > > A    wc3/dir-v2
> > > > svn: E235000: In file 'subversion/libsvn_wc/update_editor.c' line
> > > > 1582: assertion failed (action == svn_wc_conflict_action_edit ||
> > > > action == svn_wc_conflict_action_delete || action ==
> > > > svn_wc_conflict_action_replace)
> > > > Abort trap: 6 (core dumped)
> > > 
> > > > If you need more information, I would be glad to provide it.
> > > 
> > > Thanks, I can reproduce this. Taking a look.
> > 
> > I think I found the problem.
> > Can you apply this patch to the FreeBSD port, recompile and test?
> > Thanks.
> 
> Ooops, sorry, that patch had a bug.
> It fixed the assertion in your example but not in others.
> This one should be better.

Third time's a charm :)
This one should really fix it in all cases.

Index: subversion/libsvn_wc/update_editor.c
===================================================================
--- subversion/libsvn_wc/update_editor.c        (revision 1186847)
+++ subversion/libsvn_wc/update_editor.c        (working copy)
@@ -4270,6 +4270,7 @@ close_file(void *file_baton,
 
       {
         int i;
+        svn_boolean_t seen_special_prop_change = FALSE;
 
         for (i = 0; i < regular_prop_changes->nelts; ++i)
           {
@@ -4278,9 +4279,15 @@ close_file(void *file_baton,
 
             if (strcmp(prop->name, SVN_PROP_SPECIAL) == 0)
               {
-                incoming_is_link = TRUE;
+                seen_special_prop_change = TRUE;
+                break;
               }
           }
+
+        if (seen_special_prop_change)
+          incoming_is_link = TRUE;
+        else
+          incoming_is_link = local_is_link;
       }
 
 

Reply via email to