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

From: robert marshall <[email-masked]>
Date: Wed, 11 Mar 2009 08:44:29 +0000

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.

Robert

-- 
Robert A J Marshall,  
TNEI Services Ltd, 86-90 London Road, Manchester, M1 2PW 
Registered in England & Wales No. 03891836,
Registered office:  Milburn House, Dean Street, Newcastle upon Tyne, NE1 1LE
tel: +44 161 615 6017; fax: +44 161 615 6001; mobile: +44 7759 688384 
web: http://IPSA-Power.com