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.

Index: subversion/libsvn_wc/update_editor.c
===================================================================
--- subversion/libsvn_wc/update_editor.c        (revision 1186839)
+++ subversion/libsvn_wc/update_editor.c        (working copy)
@@ -4268,20 +4268,27 @@ close_file(void *file_baton,
                                 SVN_PROP_SPECIAL,
                                 APR_HASH_KEY_STRING) != NULL;
 
-      {
-        int i;
+      if (regular_prop_changes->nelts == 0)
+        {
+          /* No prop-change, so the node remains a symlink. */
+          incoming_is_link = TRUE;
+        }
+      else
+        {
+          int i;
 
-        for (i = 0; i < regular_prop_changes->nelts; ++i)
-          {
-            const svn_prop_t *prop = &APR_ARRAY_IDX(regular_prop_changes, i,
-                                                    svn_prop_t);
+          for (i = 0; i < regular_prop_changes->nelts; ++i)
+            {
+              const svn_prop_t *prop = &APR_ARRAY_IDX(regular_prop_changes, i,
+                                                      svn_prop_t);
 
-            if (strcmp(prop->name, SVN_PROP_SPECIAL) == 0)
-              {
-                incoming_is_link = TRUE;
-              }
-          }
-      }
+              if (strcmp(prop->name, SVN_PROP_SPECIAL) == 0)
+                {
+                  incoming_is_link = TRUE;
+                  break;
+                }
+            }
+        }
 
 
       if (local_is_link != incoming_is_link)

Reply via email to