--- Begin Message ---
Subject: |
23.0.90; wrong-type-argument in vc-dir |
Date: |
Thu, 19 Feb 2009 14:21:16 +0000 |
If I run vc-dir in a svn controlled directory called 'Test Networks'
(with the internal space but not the quotes!), I get a wrong-type-argument
error, with the following traceback -
Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
ewoc-data(nil)
vc-dir-node-directory(nil)
when I don't have debug-on-error set to t the *vc-dir* process never
completes.
In GNU Emacs 23.0.90.4 (i686-pc-linux-gnu, GTK+ Version 2.14.4)
of 2009-02-16 on robert-laptop
Windowing system distributor `The X.Org Foundation', version 11.0.10502000
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_GB.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: VC dir
Minor modes in effect:
diff-auto-refine-mode: t
desktop-save-mode: t
shell-dirtrack-mode: t
recentf-mode: t
show-paren-mode: t
tooltip-mode: t
tool-bar-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
global-auto-composition-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#2388: 23.0.90; wrong-type-argument in vc-dir |
Date: |
Tue, 14 Apr 2009 17:30:16 -0700 (PDT) |
Dan Nicolaescu <dann@ics.uci.edu> writes:
> robert marshall <robert.marshall@tnei.co.uk> 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)
> > > (let ((data ...)) (or (vc-dir-fileinfo->directory data)
> > > (file-name-directory ...)))
> > > vc-dir-node-directory(nil)
> > > (let* ((rd ...) (prev-node ...) (prev-dir ...)) (unless
> > > (string-equal entrydir prev-dir) (ewoc-enter-before vc-ewoc node
> > > ...)))
> > > (cond ((string-lessp nodedir entrydir) (setq node ...))
> > > ((string-equal nodedir entrydir) (let ... ...)) (t (let* ... ...)
> > > (ewoc-enter-before vc-ewoc node ...) (setq entries ... entry ...)))
> > > (let* ((entryfile ...) (entrydir ...) (nodedir ...)) (cond
> > > (... ...) (... ...) (t ... ... ...)))
> > > (while (and entry node) (let* (... ... ...) (cond ... ... ...)))
> > > (let ((entry ...) (node ...) (dotname ...)) (unless node
> > > (ewoc-enter-last vc-ewoc ...) (setq node ...)) (while (and entry
> > > node) (let* ... ...)) (unless (or node noinsert) (let ... ...)))
> > > (save-current-buffer (set-buffer buffer) (setq entries (sort
> > > entries ...)) (let (... ... ...) (unless node ... ...) (while
> > > ... ...) (unless ... ...)))
> > > (with-current-buffer buffer (setq entries (sort entries ...)) (let
> > > (... ... ...) (unless node ... ...) (while ... ...) (unless
> > > ... ...)))
> > > 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)))
After doing "svn update -rSOME_OLDER_VERSION" it seems that "." can
appear in the "svn status" output. So I applied this patch.
--- End Message ---