Subject: bug#624: 23.0.60; checkin unmodified rcs file fails

From: Alex Harsanyi <[email-masked]>
Date: Tue, 29 Jul 2008 18:07:42 +0800

1/ checkout a RCS file (using C-x v v)
2/ Type C-x v v again

Emacs will notice that the file is not modified and will revert it  
without
asking (previous versions used to ask the user).  However, after that  
it will
pop-up a log buffer and allow the user to continue with the checkin.   
Trying
to checkin (C-c C-c) will result in an error (since the file is no  
longer
checked out).

This happens because `vc-next-action' will revert all the unchanged  
files form
the changeset and remove them from the `read-for-commmit' list.   
Unfortunately
it uses the `delete' function incorrectly, leaving the reverted file  
in the
list if it is the first one.  The patch below contains a fix for the  
problem:

--- vc.el	25 Jul 2008 17:08:11 +0800	1.698
+++ vc.el	25 Jul 2008 17:10:35 +0800	
@@ -1085,7 +1085,7 @@ merge in the changes into your working c
  			 ;; finishing the log entry and committing.
  			 (not (and visited (buffer-modified-p))))
  		(vc-revert-file file)
-		(delete file ready-for-commit)))))
+		(setq ready-for-commit (delete file ready-for-commit))))))
  	;; Remaining files need to be committed
  	(if (not ready-for-commit)
  	    (message "No files remain to be committed")

In GNU Emacs 23.0.60.1 (powerpc-apple-darwin8.11.0, *Step 9.0)
  of 2008-07-29 on karinji.local
Windowing system distributor `Apple', version 49.46.48
configured using `configure  '--with-ns''

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: nil
   value of $XMODIFIERS: nil
   locale-coding-system: nil
   default-enable-multibyte-characters: t

Major mode: Java/l

Minor modes in effect:
   show-paren-mode: t
   global-cwarn-mode: t
   display-time-mode: t
   mouse-wheel-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   global-auto-composition-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   abbrev-mode: t

Recent input:
<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-movement>
<mouse-movement> <down-mouse-1> <mouse-1> h e l l o
<return> <C-backspace> <C-backspace> <backspace> <backspace>
<backspace> C-a C-k <ns-change-font> <ns-change-font>
<ns-change-font> <ns-change-font> <down-mouse-1> <drag-mouse-1>
<down-mouse-1> <mouse-1> C-x C-f / <backspace> ~ /
. e m <tab> i n i <tab> <return> <down> <down> <down>
<down> <down> <down> s-> M-> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <down-mouse-1> <mouse-1> <down-mouse-1>
<mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
<up> <up> <up> s-< <S-kp-enter> <S-kp-enter> <backspace>
<backspace> C-x C-s <down-mouse-1> <mouse-1> <up> <up>
M-< M-> <up> <up> M-< <down-mouse-1> <mouse-1> <down-mouse-1>
<mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1>
<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-movement>
<mouse-movement> <drag-mouse-1> <down-mouse-1> <mouse-1>
<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1>
<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-movement>
<mouse-movement> <drag-mouse-1> <down-mouse-1> <mouse-1>
<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1> C-x
5 2 <down-mouse-1> <mouse-1> C-x C-f P <backspace>
/ P r o <tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab>
<tab> <backspace> <backspace> <backspace> <backspace>
<tab> C-d <tab> <tab> / P <backspace> <backspace> ~
/ P r o <tab> E m <tab> <return> <down> <down> <up>
<return> M-> <up> <up> <up> <up> <up> <up> <up> <up>
<down> <return> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> C-c t <down>
<down> <down> <down> <up> <up> <up> <up> <up> <down>
C-x C-f <C-backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <return> <down> <up> <up> <return>
<down> M-> <up> <up> <up> <up> <up> <up> <return> <down>
<down> <down> <down> <down> <down> + R C S <return>
<down> <down> <down> <down> <down> <down> <down> <return>
C-x v i <down> <down> <down> C-x C-v C-v <C-up> C-g
C-g C-x v v <down> <down> <down> C-x v v h e l l o
C-c C-c <down> <up> <up> C-x 0 <down-mouse-1> <mouse-1>
M-x r e p o r t <tab> <return>

Recent messages:
Registering (/Users/haral/Other/except.java)... done
call-interactively: End of buffer
Quit [2 times]
Checking out /Users/haral/Other/except.java...done
Mark set
Press C-c C-c when you are done editing.
Enter a change comment.  Type C-c C-c when done
Checking in /Users/haral/Other/except.java...
vc-do-command: Running ci -j -u1 -mhello
  RCS/except.java,v...FAILED (status 1)