Subject: bug#2388: 23.0.90; wrong-type-argument in vc-dir

From: Dan Nicolaescu <[email-masked]>
Date: Wed, 11 Mar 2009 17:48:22 -0700 (PDT)

robert marshall <[email-masked]> writes:

  > Dan Nicolaescu wrote:
  > > robert marshall <[email-masked]> writes:
  > >
  > >   > Nick Roberts wrote:
  > >   > > Nick Roberts writes:
  > >   > >  >  > > I can't reproduce this.
  > >   > >  >  > > Can you please post step by step recipe of how you get this, starting
  > >   > >  >  > > with emacs -Q.  >  > > The output of  >  > > svn -u status
  > >   > >  >  > > in that directory might be helpful too.
  > >   > >  >  > >    >  > I can't reproduce this either now :-(
  > >   > >  >  > I have seen this sometimes when files have needed
  > >   > > merging/updating.  I don't
  > >   > >  > think it happened earlier because with SVN emacs didn't consult the remote
  > >   > >  > repository by default:
  > >   > >
  > >   > > I still see this.  Here's a recent backtrace:
  > >   > >
  > >   > > Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  > >   > >   ewoc-data(nil)
  > >   .. <snip>
  > >   > >   vc-dir-update((("." needs-update) ("mydir" needs-update)
  > >   > > ("pom.xml" needs-update) ("mydir1/mydir2/myfile" needs-update) ...
  > >   > >
  > >   > > which fails because node, i.e (ewoc-nth vc-ewoc 0), is nil.
  > >   > >
  > >   > >     > I'm seeing this, today, the status gives me
  > >   >   > svn -u status
  > >   >       *     7243   tests/compare.py
  > >   >       *     7243   tests/harm.py
  > >   >       *     7243   tests/setup-win.py
  > >   >       *     7243   ipsa.i
  > >   >       *     7243   Makefile
  > >   >       *     7243   IscNetComponent.cpp
  > >   >       *     7243   IscNetComparator.h
  > >   >       *     7243   IpsaComparator.cpp
  > >   >       *     7243   IscNetComponent.h
  > >   >       *     7243   IscNetComparator.cpp
  > >   >       *            IscCompareData.h
  > >   > ?                   ipsa_wrap.cpp
  > >   > M      *     7243   IscInterface.cpp
  > >   > ?                   ipsa.py
  > >   >       *            IscCompareData.cpp
  > >   >       *     7243   Scripting.vcproj
  > >   >       *     7243   .
  > >        ^^^^^^^^^^^^^^^^^^^^^^^^    This might be the cause of the
  > > problem.  Can you please try thing
  > >    patch:
  > >
  > >
  > > Index: vc-svn.el
  > > ===================================================================
  > > RCS file: /cvsroot/emacs/emacs/lisp/vc-svn.el,v
  > > retrieving revision 1.112
  > > diff -u -3 -p -u -p -r1.112 vc-svn.el
  > > --- vc-svn.el 10 Feb 2009 05:59:14 -0000        1.112
  > > +++ vc-svn.el 10 Mar 2009 20:49:23 -0000
  > > @@ -176,7 +176,7 @@ want to force an empty list of arguments
  > >         ;; FIXME are there other possible combinations?
  > >              (cond ((eq state 'edited) (setq state 'needs-merge))
  > >                       ((not state) (setq state 'needs-update))))
  > > -       (when state
  > > +       (when (and state (not (string= "." filename)))
  > >           (setq result (cons (list filename state) result)))))
  > >      (funcall callback result)))
  > >   
  > Thanks for this, I've installed it and will persuade my colleagues to
  > do a few checkins :-)
  > Not sure why svn should list '.' as needing an update.  Unfortunately
  > my svn is now
  > up to date so I can't, currently, replicate this issue.

I would say it would be better to not install the above patch.  You can
install it whenever you hit the problem again and see if it help.
In case it doesn't saving the tree that generates the problem would help
testing a different fix.