[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
can't create new file if have RCS version
From: |
Richard Sharman |
Subject: |
can't create new file if have RCS version |
Date: |
Fri, 25 Apr 2008 09:31:28 -0400 |
1. Create a file, check it in; do *not* also check it out with -l
% date > junk
% ci junk
junk,v <-- junk
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> .
initial revision: 1.1
done
% ls -l junk*
-r--r--r-- 1 sharman gx5000 209 Apr 25 09:10 junk,v
%
2. Try and create a totally new version with emacs.
E.g. find-file junk
Reply "no" to the prompt "file was lost, check out version from source
control".
This produces an error:
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
string-match(".r-..-..-." nil)
vc-rcs-state-heuristic("/home/gx5000/sharman/tmp/junk")
apply(vc-rcs-state-heuristic "/home/gx5000/sharman/tmp/junk")
vc-call-backend(RCS state-heuristic "/home/gx5000/sharman/tmp/junk")
vc-state("/home/gx5000/sharman/tmp/junk")
vc-default-mode-line-string(RCS "/home/gx5000/sharman/tmp/junk")
apply(vc-default-mode-line-string RCS "/home/gx5000/sharman/tmp/junk")
vc-call-backend(RCS mode-line-string "/home/gx5000/sharman/tmp/junk")
vc-mode-line("/home/gx5000/sharman/tmp/junk")
vc-find-file-hook()
run-hooks(find-file-hook)
after-find-file(t t)
find-file-noselect-1(#<buffer junk> "~/tmp/junk" nil nil "~/tmp/junk" nil)
find-file-noselect("~/tmp/junk" nil nil t)
find-file("~/tmp/junk" t)
call-interactively(find-file)
3. If a different file (e.g. junk2) is visited and then you try and save
this as the first file (junk, in the above example) you also get
an error:
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
string-match(".r-..-..-." nil)
vc-rcs-state-heuristic("/home/gx5000/sharman/tmp/junk")
apply(vc-rcs-state-heuristic "/home/gx5000/sharman/tmp/junk")
vc-call-backend(RCS state-heuristic "/home/gx5000/sharman/tmp/junk")
vc-state("/home/gx5000/sharman/tmp/junk")
vc-before-save()
basic-save-buffer()
save-buffer()
write-file("~/tmp/junk" t)
call-interactively(write-file)
It seems that vc-state can't handle a case where a file doens't exist
but it is under version-control.
(vc-state "~/tmp/junk2")
=> nil
(vc-state "~/tmp/junk")
=> error (wrong-type-argument stringp nil)
string-match(".r-..-..-." nil)
The function vc-state mentions new substates including removed;
using that avoided the problem.
% diff -c vc-hooks.el.orig vc-hooks.el
*** vc-hooks.el.orig Fri Apr 25 09:27:08 2008
--- vc-hooks.el Fri Apr 25 09:28:55 2008
***************
*** 478,487 ****
;; - `conflict' (i.e. `edited' with conflict markers)
;; - `removed'
;; - `copied' and `moved' (might be handled by `removed' and `added')
! (or (vc-file-getprop file 'vc-state)
! (if (vc-backend file)
! (vc-file-setprop file 'vc-state
! (vc-call state-heuristic file)))))
(defun vc-recompute-state (file)
"Recompute the version control state of FILE, and return it.
--- 478,490 ----
;; - `conflict' (i.e. `edited' with conflict markers)
;; - `removed'
;; - `copied' and `moved' (might be handled by `removed' and `added')
! ;; ok, let's use removed if it doesn't exist...
! (if (file-exists-p file)
! (or (vc-file-getprop file 'vc-state)
! (if (vc-backend file)
! (vc-file-setprop file 'vc-state
! (vc-call state-heuristic file))))
! 'removed))
(defun vc-recompute-state (file)
"Recompute the version control state of FILE, and return it.
%
========================================================================
In GNU Emacs 22.1.2 (i686-pc-linux-gnu, X toolkit)
of 2008-03-14 on sharmanpc.mitel.com
Windowing system distributor `The X.Org Foundation', version 11.0.60802000
configured using `configure '--with-x-toolkit=athena'
'--without-toolkit-scroll-bars''
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: C
locale-coding-system: nil
default-enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
url-handler-mode: t
shell-dirtrack-mode: t
highlight-changes-visible-mode: t
display-time-mode: t
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
blink-cursor-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
line-number-mode: t
Recent input:
SPC j u n k SPC <return> l SPC <backspace> s SPC -
l SPC j u n k * <return> C-x o C-p C-x o C-x o C-2
C-e M-w M-e <return> <return> C-y C-a M-f C-f C-f C-f
C-f C-f C-f C-f C-2 C-e C-b C-b C-w C-x o l s SPC $
P W D / j u n k <return> C-p C-a C-f C-f C-f C-f C-2
C-M-f M-w C-x o C-f C-y " C-e C-j q C-x o C-x C-f j
u k <backspace> n k <return> n o <return> q C-x C-f
j u n k <return> a s d a s d <return> C-x C-s C-x o
q C-x i C-x p C-x o q <switch-frame> <help-echo> <switch-frame>
<switch-frame> <help-echo> <switch-frame> <switch-frame>
<switch-frame> <help-echo> <help-echo> <down-mouse-1>
<mouse-movement> <mouse-1> C-x <help-echo> C-a <help-echo>
<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1> C-x
C-e <help-echo> <help-echo> <help-echo> <help-echo>
<switch-frame> <down-mouse-1> <mouse-movement> <mouse-1>
C-h f v c c <backspace> <backspace> c <backspace> s
c <backspace> c <backspace> <backspace> c - s t a t
e <return> <help-echo> <down-mouse-1> <mouse-1> <down-mouse-5>
<mouse-5> <down-mouse-4> <mouse-4> <help-echo> <down-mouse-2>
<help-echo> <mouse-2> <help-echo> <switch-frame> <down-mouse-1>
<mouse-movement> <mouse-1> C-x o C-a C-2 C-e M-w C-n
<return> C-x o q M-x s h e <tab> <return> m k d i r
C-a C-k d a t e SPC > SPC j u n k 2 <return> C-x o
C-x b 8 s c <tab> <backspace> <backspace> <backspace>
<return> C-a C-2 C-e M-w <return> <return> C-y M-b
M-f 2 C-e C-j C-p C-p C-p C-p C-e C-j q <switch-frame>
<down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5>
<down-mouse-4> <mouse-4> <down-mouse-4> <mouse-4> <double-down-mouse-4>
<double-mouse-4> <help-echo> <switch-frame> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <menu-bar> <help-menu>
<report-emacs-bug>
Recent messages:
Back to top level.
Cannot find image file
`/usr/local/share/emacs/22.1/etc/vm/message-colorful.xpm' [8 times]
Mark set [2 times]
Cannot find image file `/usr/local/share/emacs/22.1/etc/vm/message-colorful.xpm'
Entering debugger...
Cannot find image file `/usr/local/share/emacs/22.1/etc/vm/message-colorful.xpm'
Back to top level.
Cannot find image file
`/usr/local/share/emacs/22.1/etc/vm/message-colorful.xpm' [8 times]
Loading emacsbug...done
Cannot find image file `/usr/local/share/emacs/22.1/etc/vm/message-colorful.xpm'
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- can't create new file if have RCS version,
Richard Sharman <=