summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/vc/vc.el8
2 files changed, 10 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 448b07edec2..e18fdaec0bf 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,7 @@
+2011-10-20 Glenn Morris <rgm@gnu.org>
+
+ * vc/vc.el (vc-next-action): Handle removed directories. (Bug#9781)
+
2011-10-20 Christoph Scholtes <cschol2112@googlemail.com>
* emulation/cua-base.el (cua-set-mark): Fix case of string.
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index cdc4f155083..909585138fc 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1120,9 +1120,13 @@ merge in the changes into your working copy."
;; Files have local changes
((vc-compatible-state state 'edited)
(let ((ready-for-commit files))
- ;; If files are edited but read-only, give user a chance to correct
+ ;; If files are edited but read-only, give user a chance to correct.
(dolist (file files)
- (unless (file-writable-p file)
+ ;; If committing a mix of removed and edited files, the
+ ;; fileset has state = 'edited. Rather than checking the
+ ;; state of each individual file in the fileset, it seems
+ ;; simplest to just check if the file exists. Bug#9781.
+ (when (and (file-exists-p file) (not (file-writable-p file)))
;; Make the file+buffer read-write.
(unless (y-or-n-p (format "%s is edited but read-only; make it writable and continue? " file))
(error "Aborted"))