Subject: bug#18709: 24.3; vc-revert inconsistency in *vc-dir*

From: <[email-masked]>
Date: Mon, 13 Oct 2014 12:08:42 -0400

In a *vc-dir* buffer:
1. Mark a buffer with 2 or more changed files.
2. Invoke vc-revert.
3. See prompt "Discard changes in 1 file? (yes or no) ".
4. Confirm with "yes".
5. Get the following messages, the last of which signals an error.
    Finding changes in /devel/dougl/...
    Reverting /devel/dougl/ttwork/es/...
    Checking out /devel/dougl/ttwork/es/...
    vc-default-revert: Non-regular file: cannot write to a directory., /devel/dougl/...

Apologetic statements:
a. This is hardly fatal and
   could be regarded as expected behavior.
   (It is a little surprising though.)
b. I'm sorry I can't submit a patch with this immediately,
   but I don't understand the vc/vc-backend structure yet.

In GNU Emacs 24.3.2 (powerpc-ibm-aix6.1.0.0, X toolkit, Xaw scroll bars)
 of 2014-04-17 on devlpar1
Windowing system distributor `The Cygwin/X Project', version 11.0.11601000
Configured using:
 `configure '--prefix=/devel/dougl/local' '--with-jpeg=no'
 '--with-png=no' '--with-gif=no' '--with-tiff=no' 'CC=xlc' 'CFLAGS=-O''

Important settings:
  value of $LANG: en_US
  locale-coding-system: iso-latin-1-unix
  default enable-multibyte-characters: t

Major mode: VC dir

Minor modes in effect:
  diff-auto-refine-mode: t
  which-function-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  mouse-wheel-mode: t
  tool-bar-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-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t

Recent input:
* <return> a n d SPC P A S S T D W O R K SPC - - > 
S-SPC P A S S T D * W O R K * <return> i n SPC c o 
m m e n t SPC ( 1 ) SPC f o r SPC e m p h a s i s <return> 
a n d S-SPC ( 2 ) S-SPC t o SPC a b <backspace> v o 
i d SPC c o n f u s i n g SPC p a s s t d _ f l i p 
. <return> C-c C-c C-g C-g C-g C-g C-x k <return> C-g 
C-n f C-x v u y e s <return> C-x k <return> C-x k <return> 
C-x o C-x k <return> C-x k <return> C-n o C-x v d <return> 
C-u C-n C-n C-n C-n C-n f C-x v = n p n C-x k <return> 
C-x o C-x k <return> C-n f C-x v = C-v C-v C-g C-g 
C-x k <return> C-x k <return> C-x o C-x k <return> 
C-p C-p C-p C-n m C-x v u y e s <return> C-p u m m 
C-g C-x v u y e s <return> <help-echo> <down-mouse-1> 
<mouse-movement> <mouse-1> <escape> x b u r <tab> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> u g 
<tab> <tab> <backspace> <backspace> <backspace> C-a 
C-k r e p o <tab> r <tab> <return> d i s c a r d SPC 
c h <backspace> <backspace> <backspace> - c h a n g 
e s SPC C-a v C-g C-h f v c - d i <tab> s <tab> C-g 
C-g C-g C-h k C-x v u <escape> x r e p o <tab> r t 
<tab> <tab> <return>

Recent messages:
Checking out /devel/dougl/ttwork/es/evpfin-f_Serena_8781_scheduler_launcher/evpfin.pd...done
Reverting /devel/dougl/ttwork/es/evpfin-f_Serena_8781_scheduler_launcher/evpfin.obf /devel/dougl/ttwork/es/evpfin-f_Serena_8781_scheduler_launcher/evpfin.pd...done
Saving file /devel/dougl/log/emacs/log-201410131016-10879024...
Wrote /devel/dougl/log/emacs/log-201410131016-10879024
Making completion list... [2 times]
Quit
Making completion list...
Quit [3 times]
Type "q" in help window to restore its previous buffer.
Making completion list... [2 times]

Load-path shadows:
/devel/dougl/local/share/db-mode/0.04-devt/lisp/dbui hides /devel/dougl/local/share/emacs/site-lisp/db-mode/dbui
/devel/dougl/local/share/db-mode/0.04-devt/lisp/db-relations hides /devel/dougl/local/share/emacs/site-lisp/db-mode/db-relations
/devel/dougl/local/share/db-mode/0.04-devt/lisp/db-mode hides /devel/dougl/local/share/emacs/site-lisp/db-mode/db-mode
/devel/dougl/local/share/db-mode/0.04-devt/lisp/db-generic hides /devel/dougl/local/share/emacs/site-lisp/db-mode/db-generic
/devel/dougl/local/share/db-mode/0.04-devt/lisp/db-buffers hides /devel/dougl/local/share/emacs/site-lisp/db-mode/db-buffers
/devel/dougl/share/emacs/site-lisp/misc hides /devel/dougl/local/share/emacs/24.3/lisp/misc

Features:
(shadow sort gnus-util mail-extr emacsbug message cl-macs gv rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils log-view smerge-mode sh-script smie executable
diff-mode vc-rcs vc-dir ewoc find-dired log-edit pcvs-util vc
vc-dispatcher ediff-vers dougl-ediff ediff-merg ediff-diff ediff-wind
ediff-help ediff-util ediff-mult ediff-init ediff misearch multi-isearch
add-log parse-time vc-cvs cc-langs cl icicles-autoloads package dired
em-unix em-term term disp-table ehelp electric em-script em-prompt em-ls
em-hist em-pred em-glob em-dirs em-cmpl em-basic em-banner em-alias
esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc esh-groups
eshell esh-module esh-mode esh-util which-func time db-mode dbui etags
db-vars db-buffers db-relations db-generic server quail help-mode ob-sh
shell org byte-opt warnings bytecomp byte-compile cconv ob-tangle ob-ref
ob-lob ob-table org-footnote org-src ob-comint ob-keys org-pcomplete
pcomplete org-list org-faces org-entities noutline outline easy-mmode
org-version ob-emacs-lisp ob org-compat org-macs ob-eval org-loaddefs
format-spec find-func cal-menu calendar cal-loaddefs dougl-log
shell-support peterb new-defun my-shell-script my-elisp issues
dougl-date-time c-support passport pp-analysis pp-sub pp-pro pp-pd
pp-ovl pp-opn pp-obf pp-misc pp-ini pp-ext pp-ar pp-sql sql comint
ansi-color ring pp-scn pp-men pp-blk pp-pl derived pascal pp-generic
c-analysis imenu cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs thingatpt uniquify advice
help-fns cl-lib advice-preload time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
make-network-process dynamic-setting x-toolkit x multi-tty emacs)