GNU bug report logs - #3214
23.0.92; VC dir mode fails after commit when files are deleted

Previous Next

Package: emacs;

Reported by: Bob Rogers <rogers-emacs <at> rgrjr.dyndns.org>

Date: Mon, 4 May 2009 22:45:03 UTC

Severity: normal

Tags: fixed

Done: Mauro Aranda <maurooaranda <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 3214 in the body.
You can then email your comments to 3214 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#3214; Package emacs. (Mon, 04 May 2009 22:45:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bob Rogers <rogers-emacs <at> rgrjr.dyndns.org>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Mon, 04 May 2009 22:45:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Bob Rogers <rogers-emacs <at> rgrjr.dyndns.org>
To: emacs-pretest-bug <at> gnu.org
Subject: 23.0.92; VC dir mode fails after commit when files are deleted
Date: Mon,  4 May 2009 18:38:45 -0400 (EDT)
   To reproduce:

   1.  Find or create a working copy of a repository, and identify a
file that you want to remove from the repo, call it "foo.text".  (I used
SVN, but the problem doesn't seem to be backend-dependent.)  You will
need to commit in order to trigger the bug, so be sure you really don't
mind getting rid of it.

   2.  "emacs -Q" in the working copy.

   3.  "C-x C-f foo.text RET".  The deleted file must be visited in
order to trigger the bug.

   4.  Remove the file via the VC command-line tools, but don't commmit
yet.  (Don't use vc-delete-file, as that will also delete the buffer.)

   5.  "C-x v d" to get VC dir mode in the other window.  It should tag
foo.text as "removed".  (FWIW, if you do "C-x v d" first, you will see
bug #3213.)

   6.  Type "v" on the foo.text line, then "C-c C-c" in the log entry
buffer to commit the change.  You should then get a "File foo.text no
longer exists!" error.  A sample backtrace is shown below.

   The patch after the backtrace cures the symptom crudely, albeit by
papering over it, and possibly hiding other bugs.  It would be better if
vc-finish-logentry could recognize which files are being deleted, and
then have vc-resynch-buffer simply delete those buffers, but it is not
clear to me how to do that in a backend-independent way.

   Admittedly, this is a comparatively minor nuisance; the VC change is
comitted properly, and the partially-updated VC-dir buffer can be fixed
by typing "g".  (And I don't know whether this is a regression.)

					-- Bob Rogers
					   http://www.rgrjr.com/

Backtrace:
Debugger entered--Lisp error: (error "File /home/rogers/projects/test2/test/foo.text no longer exists!")
  signal(error ("File /home/rogers/projects/test2/test/foo.text no longer exists!"))
  error("File %s no longer exists!" "/home/rogers/projects/test2/test/foo.text")
  revert-buffer(t t t)
  vc-revert-buffer-internal(t t)
  vc-resynch-window("/home/rogers/projects/test2/test/foo.text" t t)
  vc-resynch-buffer("/home/rogers/projects/test2/test/foo.text" t t)
  #[(file) "=3fffc2	=3fffc3#=3fff87" [file vc-keep-workfiles vc-resynch-buffer t] 4]("/home/rogers/projects/test2/test/foo.text")
  mapc(#[(file) "=3fffc2	=3fffc3#=3fff87" [file vc-keep-workfiles vc-resynch-buffer t] 4] ("/home/rogers/projects/test2/test/foo.text"))
  vc-finish-logentry()
  call-interactively(vc-finish-logentry)
  log-edit-done()
  call-interactively(log-edit-done nil nil)
------------------------------------------------------------------------
Index: lisp/vc-dispatcher.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/vc-dispatcher.el,v
retrieving revision 1.67
diff -c -r1.67 vc-dispatcher.el
*** lisp/vc-dispatcher.el	5 Jan 2009 03:19:52 -0000	1.67
--- lisp/vc-dispatcher.el	4 May 2009 19:29:54 -0000
***************
*** 444,453 ****
      ;; and mark properly even in cases where vc-restore-buffer-context
      ;; would fail.  However, save-excursion might also get it wrong --
      ;; in this case, vc-restore-buffer-context gives it a second try.
!     (save-excursion
!       ;; t means don't call normal-mode;
!       ;; that's to preserve various minor modes.
!       (revert-buffer arg no-confirm t))
      (vc-restore-buffer-context context)))
  
  (defun vc-resynch-window (file &optional keep noquery)
--- 444,457 ----
      ;; and mark properly even in cases where vc-restore-buffer-context
      ;; would fail.  However, save-excursion might also get it wrong --
      ;; in this case, vc-restore-buffer-context gives it a second try.
!     (condition-case error
! 	(save-excursion
! 	  ;; t means don't call normal-mode;
! 	  ;; that's to preserve various minor modes.
! 	  (revert-buffer arg no-confirm t))
!       (error
!         (message "Got error %S" error)
! 	(sit-for 2)))
      (vc-restore-buffer-context context)))
  
  (defun vc-resynch-window (file &optional keep noquery)
------------------------------------------------------------------------
In GNU Emacs 23.0.92.1 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
 of 2009-04-24 on rgr
Windowing system distributor `The X.Org Foundation', version 11.0.10400090
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_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Debugger

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-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
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#3214; Package emacs. (Wed, 20 Jan 2010 03:59:01 GMT) Full text and rfc822 format available.

Message #8 received at 3214 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: 3214 <at> debbugs.gnu.org
Subject: vc-dir problem when committing removed file to bzr
Date: Tue, 19 Jan 2010 22:58:54 -0500
Just had what seems to be a same problem as this (bug#3214) with the
trunk from 2010-01-10.

In the emacs admin/ directory, I did (from the command-line):

bzr remove revdiff

Then I edited the ChangeLog file, then did M-x vc-dir on the admin
directory.

In the resulting buffer, the ChangeLog was marked as modified, and
revdiff as removed.

I marked both files, hit `v', entered a log message, and tried to
commit. The vc-dir process finished with an error:

  Running bzr status ChangeLog in foreground...
  Running bzr status ChangeLog...OK = 0
  Running bzr status revdiff in foreground...
  vc-do-command: Running bzr status revdiff...FAILED (status 3)
  Matches vc-do-command: Running bzr status revdiff...FAILED (... [-1-]

I'm left with a vc-dir buffer which looks like:

*   up-to-date           ChangeLog
*   removed              revdiff

However, the commit to the repository did complete OK.





Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#3214; Package emacs. (Wed, 20 Jan 2010 07:17:02 GMT) Full text and rfc822 format available.

Message #11 received at 3214 <at> debbugs.gnu.org (full text, mbox):

From: Dan Nicolaescu <dann <at> ics.uci.edu>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 3214 <at> debbugs.gnu.org
Subject: Re: bug#3214: vc-dir problem when committing removed file to bzr
Date: Tue, 19 Jan 2010 23:16:08 -0800 (PST)
Glenn Morris <rgm <at> gnu.org> writes:

  > Just had what seems to be a same problem as this (bug#3214) with the
  > trunk from 2010-01-10.
  > 
  > In the emacs admin/ directory, I did (from the command-line):
  > 
  > bzr remove revdiff
  > 
  > Then I edited the ChangeLog file, then did M-x vc-dir on the admin
  > directory.
  > 
  > In the resulting buffer, the ChangeLog was marked as modified, and
  > revdiff as removed.
  > 
  > I marked both files, hit `v', entered a log message, and tried to
  > commit. The vc-dir process finished with an error:
  > 
  >   Running bzr status ChangeLog in foreground...
  >   Running bzr status ChangeLog...OK = 0
  >   Running bzr status revdiff in foreground...
  >   vc-do-command: Running bzr status revdiff...FAILED (status 3)
  >   Matches vc-do-command: Running bzr status revdiff...FAILED (... [-1-]


We get to vc-do-command like this:
 vc-bzr-state -> vc-bzr-status -> vc-bzr-command -> vc-do-command

vc-bzr-command is passed a 0 for OKSTATUS.
but 
bzr status revdiff 
returns 3, that is why the message above is printed.
Changing that 0 to 3 helps, but then vc-bzr-state prints 
"bzr: ERROR: Path(s) do not exist: revdiff".

Maybe we can make vc-bzr-status ignore that message.

I'd like to get a second opinion before making the 2 changes above (0->3
and ignore the error message).

  > I'm left with a vc-dir buffer which looks like:
  > 
  > *   up-to-date           ChangeLog
  > *   removed              revdiff
  > 
  > However, the commit to the repository did complete OK.

The calls above occur after the checkin has been completed.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#3214; Package emacs. (Sun, 15 Oct 2023 10:35:01 GMT) Full text and rfc822 format available.

Message #14 received at 3214 <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: rogers <at> rgrjr.com
Cc: rgm <at> gnu.org, 3214 <at> debbugs.gnu.org, dann <at> ics.uci.edu
Subject: Re: bug#3214: 23.0.92; VC dir mode fails after commit when files are
 deleted
Date: Sun, 15 Oct 2023 07:34:09 -0300
Bob Rogers <rogers-emacs <at> rgrjr.dyndns.org> writes:

>    To reproduce:
>
>    1.  Find or create a working copy of a repository, and identify a
> file that you want to remove from the repo, call it "foo.text".  (I used
> SVN, but the problem doesn't seem to be backend-dependent.)  You will
> need to commit in order to trigger the bug, so be sure you really don't
> mind getting rid of it.
>
>    2.  "emacs -Q" in the working copy.
>
>    3.  "C-x C-f foo.text RET".  The deleted file must be visited in
> order to trigger the bug.
>
>    4.  Remove the file via the VC command-line tools, but don't commmit
> yet.  (Don't use vc-delete-file, as that will also delete the buffer.)
>
>    5.  "C-x v d" to get VC dir mode in the other window. It should tag
> foo.text as "removed".  (FWIW, if you do "C-x v d" first, you will see
> bug #3213.)
>
>    6.  Type "v" on the foo.text line, then "C-c C-c" in the log entry
> buffer to commit the change.  You should then get a "File foo.text no
> longer exists!" error.  A sample backtrace is shown below.
>

I tried to reproduce this bug, but couldn't.  I tried with svn and with
git, and didn't get an error.

I also tried the recipe in Emacs 27.1 (the oldest one I have available
here), and still wasn't able to reproduce it.

Are you still seeing this?





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#3214; Package emacs. (Sat, 21 Oct 2023 01:31:01 GMT) Full text and rfc822 format available.

Message #17 received at 3214 <at> debbugs.gnu.org (full text, mbox):

From: Bob Rogers <rogers <at> rgrjr.com>
To: Mauro Aranda <maurooaranda <at> gmail.com>
Cc: rgm <at> gnu.org, 3214 <at> debbugs.gnu.org, dann <at> ics.uci.edu
Subject: Re: bug#3214: 23.0.92; VC dir mode fails after commit when files are
 deleted
Date: Fri, 20 Oct 2023 18:29:47 -0700
   From: Mauro Aranda <maurooaranda <at> gmail.com>
   Date: Sun, 15 Oct 2023 07:34:09 -0300

   I tried to reproduce this bug, but couldn't.  I tried with svn and with
   git, and didn't get an error.

   I also tried the recipe in Emacs 27.1 (the oldest one I have available
   here), and still wasn't able to reproduce it.

   Are you still seeing this?

No, at least not in current master with git.  Feel free to close it.
(I'd totally forgotten about this.)

					-- Bob




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#3214; Package emacs. (Sat, 21 Oct 2023 10:23:02 GMT) Full text and rfc822 format available.

Message #20 received at 3214 <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: Bob Rogers <rogers <at> rgrjr.com>
Cc: rgm <at> gnu.org, 3214 <at> debbugs.gnu.org
Subject: Re: bug#3214: 23.0.92; VC dir mode fails after commit when files are
 deleted
Date: Sat, 21 Oct 2023 07:21:23 -0300
On 20/10/23 22:29, Bob Rogers wrote:
>    From: Mauro Aranda <maurooaranda <at> gmail.com>
>    Date: Sun, 15 Oct 2023 07:34:09 -0300
>
>    I tried to reproduce this bug, but couldn't.  I tried with svn and 
with
>    git, and didn't get an error.
>
>    I also tried the recipe in Emacs 27.1 (the oldest one I have available
>    here), and still wasn't able to reproduce it.
>
>    Are you still seeing this?
>
> No, at least not in current master with git.  Feel free to close it.
> (I'd totally forgotten about this.)
>
>                     -- Bob

Thanks for checking.  I'm inclined to leave it open a while longer and
see if anyone interested can reproduce it, maybe with some other
backend.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#3214; Package emacs. (Sat, 21 Oct 2023 10:38:02 GMT) Full text and rfc822 format available.

Message #23 received at 3214 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefankangas <at> gmail.com>
To: Mauro Aranda <maurooaranda <at> gmail.com>, Bob Rogers <rogers <at> rgrjr.com>
Cc: rgm <at> gnu.org, 3214 <at> debbugs.gnu.org
Subject: Re: bug#3214: 23.0.92;
 VC dir mode fails after commit when files are deleted
Date: Sat, 21 Oct 2023 03:36:48 -0700
tags 3214 + fixed
thanks

Mauro Aranda <maurooaranda <at> gmail.com> writes:

> Thanks for checking.  I'm inclined to leave it open a while longer and
> see if anyone interested can reproduce it, maybe with some other
> backend.

I think we can probably close it, given that it's been open for 14 years
already.  If anyone wants to test with other backends, they will have 30
days to reply back before a closed bug is archived.

BTW, thanks everyone for triaging and paying attention to these very old
bug reports.  That is much appreciated.




Added tag(s) fixed. Request was from Stefan Kangas <stefankangas <at> gmail.com> to control <at> debbugs.gnu.org. (Sat, 21 Oct 2023 10:38:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#3214; Package emacs. (Sat, 21 Oct 2023 11:25:02 GMT) Full text and rfc822 format available.

Message #28 received at 3214 <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: Stefan Kangas <stefankangas <at> gmail.com>, Bob Rogers <rogers <at> rgrjr.com>
Cc: rgm <at> gnu.org, 3214 <at> debbugs.gnu.org
Subject: Re: bug#3214: 23.0.92; VC dir mode fails after commit when files are
 deleted
Date: Sat, 21 Oct 2023 08:24:16 -0300
close 3214
quit


On 21/10/23 07:36, Stefan Kangas wrote:
> tags 3214 + fixed
> thanks
>
> Mauro Aranda <maurooaranda <at> gmail.com> writes:
>
>> Thanks for checking.  I'm inclined to leave it open a while longer and
>> see if anyone interested can reproduce it, maybe with some other
>> backend.
>
> I think we can probably close it, given that it's been open for 14 years
> already.  If anyone wants to test with other backends, they will have 30
> days to reply back before a closed bug is archived.
>

No objections from me.  Everyone, feel free to reopen if you find a way
to reproduce it.





bug closed, send any further explanations to 3214 <at> debbugs.gnu.org and Bob Rogers <rogers-emacs <at> rgrjr.dyndns.org> Request was from Mauro Aranda <maurooaranda <at> gmail.com> to control <at> debbugs.gnu.org. (Sat, 21 Oct 2023 11:25:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 18 Nov 2023 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 174 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.