mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-18 22:20:56 -08:00
(vc-backend-checkout): Add if-statements to the shell cmds
to discard the extra arg some shells make. (vc-rename-file): Add autoload cookie. (vc-steal-lock): (1) Function should be non-interactive, because it doesn't work when called directly by the user. (2) Don't display revision "nil" when stealing lock if revision is unknown. (3) Put "Stolen lock on <file>" instead of just the file name in the Subject of the notification message.
This commit is contained in:
parent
403ca74580
commit
29fc1ce993
1 changed files with 34 additions and 20 deletions
54
lisp/vc.el
54
lisp/vc.el
|
|
@ -584,24 +584,28 @@ level to check it in under. COMMENT, if specified, is the checkin comment."
|
|||
|
||||
(defun vc-steal-lock (file rev &optional owner)
|
||||
"Steal the lock on the current workfile."
|
||||
(interactive)
|
||||
(if (not owner)
|
||||
(setq owner (vc-locking-user file)))
|
||||
(if (not (y-or-n-p (format "Take the lock on %s:%s from %s? " file rev owner)))
|
||||
(error "Steal cancelled"))
|
||||
(pop-to-buffer (get-buffer-create "*VC-mail*"))
|
||||
(setq default-directory (expand-file-name "~/"))
|
||||
(auto-save-mode auto-save-default)
|
||||
(mail-mode)
|
||||
(erase-buffer)
|
||||
(mail-setup owner (format "%s:%s" file rev) nil nil nil
|
||||
(list (list 'vc-finish-steal file rev)))
|
||||
(goto-char (point-max))
|
||||
(insert
|
||||
(format "I stole the lock on %s:%s, " file rev)
|
||||
(current-time-string)
|
||||
".\n")
|
||||
(message "Please explain why you stole the lock. Type C-c C-c when done."))
|
||||
(let (file-description)
|
||||
(if (not owner)
|
||||
(setq owner (vc-locking-user file)))
|
||||
(if rev
|
||||
(setq file-description (format "%s:%s" file rev))
|
||||
(setq file-description file))
|
||||
(if (not (y-or-n-p (format "Take the lock on %s from %s? "
|
||||
file-description owner)))
|
||||
(error "Steal cancelled"))
|
||||
(pop-to-buffer (get-buffer-create "*VC-mail*"))
|
||||
(setq default-directory (expand-file-name "~/"))
|
||||
(auto-save-mode auto-save-default)
|
||||
(mail-mode)
|
||||
(erase-buffer)
|
||||
(mail-setup owner (format "Stolen lock on %s" file-description) nil nil nil
|
||||
(list (list 'vc-finish-steal file rev configuration)))
|
||||
(goto-char (point-max))
|
||||
(insert
|
||||
(format "I stole the lock on %s, " file-description)
|
||||
(current-time-string)
|
||||
".\n")
|
||||
(message "Please explain why you stole the lock. Type C-c C-c when done.")))
|
||||
|
||||
;; This is called when the notification has been sent.
|
||||
(defun vc-finish-steal (file version)
|
||||
|
|
@ -1183,6 +1187,7 @@ A prefix argument means do not revert the buffer afterwards."
|
|||
(vc-checkout (buffer-file-name) nil)))
|
||||
))
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-rename-file (old new)
|
||||
"Rename file OLD to NEW, and rename its master file likewise."
|
||||
(interactive "fVC rename file: \nFRename to: ")
|
||||
|
|
@ -1541,7 +1546,13 @@ Return nil if there is no such person."
|
|||
(progn
|
||||
(vc-do-command
|
||||
0 "/bin/sh" file "-c"
|
||||
(format "umask %o; exec >\"$1\" || exit; shift; umask %o; exec get \"$@\""
|
||||
;; Some shells make the "" dummy argument into $0
|
||||
;; while others use the shell's name as $0 and
|
||||
;; use the "" as $1. The if-statement
|
||||
;; converts the latter case to the former.
|
||||
(format "if [ x\"$1\" = x ]; then shift; fi; \
|
||||
umask %o; exec >\"$1\" || exit; \
|
||||
shift; umask %o; exec get \"$@\""
|
||||
(logand 511 (lognot vc-modes))
|
||||
(logand 511 (lognot (default-file-modes))))
|
||||
"" ; dummy argument for shell's $0
|
||||
|
|
@ -1563,7 +1574,10 @@ Return nil if there is no such person."
|
|||
(progn
|
||||
(vc-do-command
|
||||
0 "/bin/sh" file "-c"
|
||||
(format "umask %o; exec >\"$1\" || exit; shift; umask %o; exec co \"$@\""
|
||||
;; See the SCCS case, above, regarding the if-statement.
|
||||
(format "if [ x\"$1\" = x ]; then shift; fi; \
|
||||
umask %o; exec >\"$1\" || exit; \
|
||||
shift; umask %o; exec co \"$@\""
|
||||
(logand 511 (lognot vc-modes))
|
||||
(logand 511 (lognot (default-file-modes))))
|
||||
"" ; dummy argument for shell's $0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue