GNU bug report logs -
#2652
23.0.91; wacky behavior of "v" command in *vc-dir* buffer
Previous Next
Reported by: Miles Bader <miles <at> gnu.org>
Date: Fri, 13 Mar 2009 00:05:05 UTC
Severity: normal
Done: Dan Nicolaescu <dann <at> ics.uci.edu>
Bug is archived. No further changes may be made.
Full log
Message #50 received at 2652 <at> emacsbugs.donarmstrong.com (full text, mbox):
Miles Bader <miles <at> gnu.org> writes:
> On Fri, Mar 13, 2009 at 4:27 PM, Dan Nicolaescu <dann <at> ics.uci.edu> wrote:
> > Thanks.
> > The immediate cause of the problem is that
> > (vc-git-registered "/tmp/zonk/")
> > returns nil.
> >
> > vc-git-registered is called because vc-finish-log-entry does a
> > `vc-call'. `vc-call' tries to find the corresponding VC backend.
> >
> > Now, the VC backend should be know known at point when the log entry is
> > started, so there should be no need for the vc-call, vc-call-backend
> > could be used...
You can try this patch that passes down the VC backend.
Not tested beyond M-x byte-compile-file.
--- vc.el.~1.711.~ Thu Jan 8 14:24:05 2009
+++ vc.el Fri Mar 13 09:14:58 2009
@@ -1085,13 +1085,13 @@
(if (not ready-for-commit)
(message "No files remain to be committed")
(if (not verbose)
- (vc-checkin ready-for-commit)
+ (vc-checkin ready-for-commit backend)
(progn
(setq revision (read-string "New revision or backend: "))
(let ((vsym (intern (upcase revision))))
(if (member vsym vc-handled-backends)
(dolist (file files) (vc-transfer-file file vsym))
- (vc-checkin ready-for-commit revision))))))))
+ (vc-checkin ready-for-commit backend revision))))))))
;; locked by somebody else (locking VCSes only)
((stringp state)
;; In the old days, we computed the revision once and used it on
@@ -1327,7 +1327,7 @@
".\n")
(message "Please explain why you stole the lock. Type C-c C-c when done.")))
-(defun vc-checkin (files &optional rev comment initial-contents)
+(defun vc-checkin (files backend &optional rev comment initial-contents)
"Check in FILES.
The optional argument REV may be a string specifying the new revision
level (if nil increment the current level). COMMENT is a comment
@@ -1341,6 +1341,7 @@
Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'."
(when vc-before-checkin-hook
(run-hooks 'vc-before-checkin-hook))
+ (lexical-let ((backend backend))
(vc-start-logentry
files rev comment initial-contents
"Enter a change comment."
@@ -1356,13 +1357,13 @@
;; We used to change buffers to get local value of vc-checkin-switches,
;; but 'the' local buffer is not a well-defined concept for filesets.
(progn
- (vc-call checkin files rev comment)
+ (vc-call-backend backend 'checkin files rev comment)
(mapc 'vc-delete-automatic-version-backups files))
`((vc-state . up-to-date)
(vc-checkout-time . ,(nth 5 (file-attributes file)))
(vc-working-revision . nil)))
(message "Checking in %s...done" (vc-delistify files)))
- 'vc-checkin-hook))
+ 'vc-checkin-hook)))
;;; Additional entry points for examining version histories
@@ -2096,7 +2097,7 @@
(when (or move edited)
(vc-file-setprop file 'vc-state 'edited)
(vc-mode-line file)
- (vc-checkin file nil comment (stringp comment)))))
+ (vc-checkin file new-backend nil comment (stringp comment)))))
(defun vc-rename-master (oldmaster newfile templates)
"Rename OLDMASTER to be the master file for NEWFILE based on TEMPLATES."
This bug report was last modified 16 years and 101 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.