mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-01 11:14:55 +00:00
* vc.el (vc-log-show-limit): New variable.
(vc-print-log, vc-print-root-log): Add new argument LIMIT. Set it when using a prefix argument. (vc-print-log-internal): Add new argument LIMIT. * vc-svn.el (vc-svn-print-log): * vc-mtn.el (vc-mtn-print-log): * vc-hg.el (vc-hg-print-log): * vc-bzr.el (vc-bzr-print-log): Add new optional argument LIMIT, pass it to the log command when set. Make the BUFFER argument non-optional. * vc-sccs.el (vc-sccs-print-log): * vc-rcs.el (vc-rcs-print-log): * vc-git.el (vc-git-print-log): * vc-cvs.el (vc-cvs-print-log): Add new optional argument LIMIT, ignore it. Make the BUFFER argument non-optional
This commit is contained in:
parent
f8e6526707
commit
6616006b02
@ -1,5 +1,23 @@
|
||||
2009-11-15 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* vc.el (vc-log-show-limit): New variable.
|
||||
(vc-print-log, vc-print-root-log): Add new argument LIMIT. Set it
|
||||
when using a prefix argument.
|
||||
(vc-print-log-internal): Add new argument LIMIT.
|
||||
|
||||
* vc-svn.el (vc-svn-print-log):
|
||||
* vc-mtn.el (vc-mtn-print-log):
|
||||
* vc-hg.el (vc-hg-print-log):
|
||||
* vc-bzr.el (vc-bzr-print-log): Add new optional argument LIMIT,
|
||||
pass it to the log command when set. Make the BUFFER argument
|
||||
non-optional.
|
||||
|
||||
* vc-sccs.el (vc-sccs-print-log):
|
||||
* vc-rcs.el (vc-rcs-print-log):
|
||||
* vc-git.el (vc-git-print-log):
|
||||
* vc-cvs.el (vc-cvs-print-log): Add new optional argument LIMIT,
|
||||
ignore it. Make the BUFFER argument non-optional
|
||||
|
||||
* bindings.el (mode-line-buffer-identification): Do not purecopy.
|
||||
|
||||
2009-11-15 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
@ -481,7 +481,7 @@ REV non-nil gets an error."
|
||||
(2 'change-log-email))
|
||||
("^ *timestamp: \\(.*\\)" (1 'change-log-date-face)))))))
|
||||
|
||||
(defun vc-bzr-print-log (files &optional buffer shortlog) ; get buffer arg in Emacs 22
|
||||
(defun vc-bzr-print-log (files buffer &optional shortlog limit)
|
||||
"Get bzr change log for FILES into specified BUFFER."
|
||||
;; `vc-do-command' creates the buffer, but we need it before running
|
||||
;; the command.
|
||||
@ -493,7 +493,8 @@ REV non-nil gets an error."
|
||||
;; way of getting the above regexps working.
|
||||
(with-current-buffer buffer
|
||||
(apply 'vc-bzr-command "log" buffer 'async files
|
||||
(if shortlog "--short")
|
||||
(when shortlog "--short")
|
||||
(when limit (list "-l" (format "%s" limit)))
|
||||
(if (stringp vc-bzr-log-switches)
|
||||
(list vc-bzr-log-switches)
|
||||
vc-bzr-log-switches))))
|
||||
|
@ -496,7 +496,7 @@ Will fail unless you have administrative privileges on the repo."
|
||||
|
||||
(declare-function vc-rcs-print-log-cleanup "vc-rcs" ())
|
||||
|
||||
(defun vc-cvs-print-log (files &optional buffer shortlog)
|
||||
(defun vc-cvs-print-log (files buffer &optional shortlog limit)
|
||||
"Get change logs associated with FILES."
|
||||
(require 'vc-rcs)
|
||||
;; It's just the catenation of the individual logs.
|
||||
|
@ -77,7 +77,7 @@
|
||||
;; - merge-news (file) see `merge'
|
||||
;; - steal-lock (file &optional revision) NOT NEEDED
|
||||
;; HISTORY FUNCTIONS
|
||||
;; * print-log (files &optional buffer shortlog) OK
|
||||
;; * print-log (files buffer &optional shortlog limit) OK
|
||||
;; - log-view-mode () OK
|
||||
;; - show-log-entry (revision) OK
|
||||
;; - comment-history (file) ??
|
||||
@ -508,7 +508,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
|
||||
|
||||
;;; HISTORY FUNCTIONS
|
||||
|
||||
(defun vc-git-print-log (files &optional buffer shortlog)
|
||||
(defun vc-git-print-log (files buffer &optional shortlog limit)
|
||||
"Get change log associated with FILES."
|
||||
(let ((coding-system-for-read git-commits-coding-system))
|
||||
;; `vc-do-command' creates the buffer, but we need it before running
|
||||
|
@ -68,7 +68,7 @@
|
||||
;; - merge-news (file) NEEDED
|
||||
;; - steal-lock (file &optional revision) NOT NEEDED
|
||||
;; HISTORY FUNCTIONS
|
||||
;; * print-log (files &optional buffer shortlog)OK
|
||||
;; * print-log (files buffer &optional shortlog) OK
|
||||
;; - log-view-mode () OK
|
||||
;; - show-log-entry (revision) NOT NEEDED, DEFAULT IS GOOD
|
||||
;; - comment-history (file) NOT NEEDED
|
||||
@ -219,12 +219,8 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
|
||||
(repeat :tag "Argument List" :value ("") string))
|
||||
:group 'vc-hg)
|
||||
|
||||
(defun vc-hg-print-log (files &optional buffer shortlog)
|
||||
(defun vc-hg-print-log (files buffer &optional shortlog limit)
|
||||
"Get change log associated with FILES."
|
||||
;; `log-view-mode' needs to have the file names in order to function
|
||||
;; correctly. "hg log" does not print it, so we insert it here by
|
||||
;; hand.
|
||||
|
||||
;; `vc-do-command' creates the buffer, but we need it before running
|
||||
;; the command.
|
||||
(vc-setup-buffer buffer)
|
||||
@ -234,9 +230,10 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
|
||||
(with-current-buffer
|
||||
buffer
|
||||
(apply 'vc-hg-command buffer 0 files "log"
|
||||
(if shortlog
|
||||
(append '("--style" "compact") vc-hg-log-switches)
|
||||
vc-hg-log-switches)))))
|
||||
(append
|
||||
(when limit (list "-l" (format "%s" limit)))
|
||||
(when shortlog '("--style" "compact"))
|
||||
vc-hg-log-switches)))))
|
||||
|
||||
(defvar log-view-message-re)
|
||||
(defvar log-view-file-re)
|
||||
|
@ -188,8 +188,9 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
|
||||
;; (defun vc-mtn-roolback (files)
|
||||
;; )
|
||||
|
||||
(defun vc-mtn-print-log (files &optional buffer shortlog)
|
||||
(vc-mtn-command buffer 0 files "log"))
|
||||
(defun vc-mtn-print-log (files buffer &optional shortlog limit)
|
||||
(apply 'vc-mtn-command buffer 0 files "log"
|
||||
(when limit (list "--last" (format "%s" limit)))))
|
||||
|
||||
(defvar log-view-message-re)
|
||||
(defvar log-view-file-re)
|
||||
|
@ -559,7 +559,7 @@ directory the operation is applied to all registered files beneath it."
|
||||
(when (looking-at "[\b\t\n\v\f\r ]+")
|
||||
(delete-char (- (match-end 0) (match-beginning 0))))))
|
||||
|
||||
(defun vc-rcs-print-log (files &optional buffer shortlog)
|
||||
(defun vc-rcs-print-log (files buffer &optional shortlog limit)
|
||||
"Get change log associated with FILE. If FILE is a
|
||||
directory the operation is applied to all registered files beneath it."
|
||||
(vc-do-command (or buffer "*vc*") 0 "rlog" (mapcar 'vc-name (vc-expand-dirs files)))
|
||||
|
@ -335,7 +335,7 @@ revert all subfiles."
|
||||
;;; History functions
|
||||
;;;
|
||||
|
||||
(defun vc-sccs-print-log (files &optional buffer shortlog)
|
||||
(defun vc-sccs-print-log (files buffer &optional shortlog limit)
|
||||
"Get change log associated with FILES."
|
||||
(setq files (vc-expand-dirs files))
|
||||
(vc-sccs-do-command buffer 0 "prs" (mapcar 'vc-name files)))
|
||||
|
@ -462,7 +462,7 @@ or svn+ssh://."
|
||||
(require 'add-log)
|
||||
(set (make-local-variable 'log-view-per-file-logs) nil))
|
||||
|
||||
(defun vc-svn-print-log (files &optional buffer shortlog)
|
||||
(defun vc-svn-print-log (files buffer &optional shortlog limit)
|
||||
"Get change log(s) associated with FILES."
|
||||
(save-current-buffer
|
||||
(vc-setup-buffer buffer)
|
||||
@ -471,7 +471,8 @@ or svn+ssh://."
|
||||
(if files
|
||||
(dolist (file files)
|
||||
(insert "Working file: " file "\n")
|
||||
(vc-svn-command
|
||||
(apply
|
||||
'vc-svn-command
|
||||
buffer
|
||||
'async
|
||||
;; (if (and (= (length files) 1) (vc-stay-local-p file 'SVN)) 'async 0)
|
||||
@ -481,9 +482,11 @@ or svn+ssh://."
|
||||
;; working revision, whereas we also want the log of the
|
||||
;; subsequent commits. At least that's what the
|
||||
;; vc-cvs.el code does.
|
||||
"-rHEAD:0"))
|
||||
"-rHEAD:0"
|
||||
(when limit (list "-l" (format "%s" limit)))))
|
||||
;; Dump log for the entire directory.
|
||||
(vc-svn-command buffer 0 nil "log" "-rHEAD:0")))))
|
||||
(apply vc-svn-command buffer 0 nil "log" "-rHEAD:0"
|
||||
(when limit (list "-l" (format "%s" limit))))))))
|
||||
|
||||
(defun vc-svn-diff (files &optional oldvers newvers buffer)
|
||||
"Get a difference report using SVN between two revisions of fileset FILES."
|
||||
|
55
lisp/vc.el
55
lisp/vc.el
@ -333,12 +333,11 @@
|
||||
;;
|
||||
;; HISTORY FUNCTIONS
|
||||
;;
|
||||
;; * print-log (files &optional buffer shortlog)
|
||||
;; * print-log (files buffer &optional shortlog limit)
|
||||
;;
|
||||
;; Insert the revision log for FILES into BUFFER, or the *vc* buffer
|
||||
;; if BUFFER is nil. (Note: older versions of this function expected
|
||||
;; only a single file argument.)
|
||||
;; Insert the revision log for FILES into BUFFER.
|
||||
;; If SHORTLOG is true insert a short version of the log.
|
||||
;; If LIMIT is true insert only insert LIMIT log entries.
|
||||
;;
|
||||
;; - log-view-mode ()
|
||||
;;
|
||||
@ -695,6 +694,13 @@ to use -L and sets this variable to remember whether it worked."
|
||||
:type '(choice (const :tag "Work out" nil) (const yes) (const no))
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-log-show-limit 0
|
||||
"Limit the number of items shown by the VC log commands.
|
||||
Zero means unlimited.
|
||||
Not all VC backends are able to support this feature."
|
||||
:type 'integer
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-allow-async-revert nil
|
||||
"Specifies whether the diff during \\[vc-revert] may be asynchronous.
|
||||
Enabling this option means that you can confirm a revert operation even
|
||||
@ -1839,7 +1845,7 @@ If it contains `directory' then if the fileset contains a directory show a short
|
||||
If it contains `file' then show short logs for files.
|
||||
Not all VC backends support short logs!")
|
||||
|
||||
(defun vc-print-log-internal (backend files working-revision)
|
||||
(defun vc-print-log-internal (backend files working-revision limit)
|
||||
;; Don't switch to the output buffer before running the command,
|
||||
;; so that any buffer-local settings in the vc-controlled
|
||||
;; buffer can be accessed by the command.
|
||||
@ -1852,7 +1858,7 @@ Not all VC backends support short logs!")
|
||||
(not (null (if dir-present
|
||||
(memq 'directory vc-log-short-style)
|
||||
(memq 'file vc-log-short-style)))))
|
||||
(vc-call-backend backend 'print-log files "*vc-change-log*" vc-short-log)
|
||||
(vc-call-backend backend 'print-log files "*vc-change-log*" vc-short-log limit)
|
||||
(pop-to-buffer "*vc-change-log*")
|
||||
(vc-exec-after
|
||||
`(let ((inhibit-read-only t)
|
||||
@ -1868,20 +1874,45 @@ Not all VC backends support short logs!")
|
||||
(set-buffer-modified-p nil)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-print-log (&optional working-revision)
|
||||
(defun vc-print-log (&optional working-revision limit)
|
||||
"List the change log of the current fileset in a window.
|
||||
If WORKING-REVISION is non-nil, leave the point at that revision."
|
||||
(interactive)
|
||||
(interactive
|
||||
(cond
|
||||
(current-prefix-arg
|
||||
(let ((rev (read-from-minibuffer "Log from revision (default: last revision): " nil
|
||||
nil nil nil))
|
||||
(lim (string-to-number
|
||||
(read-from-minibuffer
|
||||
"Limit display (unlimited: 0): "
|
||||
(format "%s" vc-log-show-limit)
|
||||
nil nil nil))))
|
||||
(when (string= rev "") (setq rev nil))
|
||||
(when (<= lim 0) (setq lim nil))
|
||||
(list rev lim)))
|
||||
(t
|
||||
(list nil nil))))
|
||||
(let* ((vc-fileset (vc-deduce-fileset t)) ;FIXME: Why t? --Stef
|
||||
(backend (car vc-fileset))
|
||||
(files (cadr vc-fileset))
|
||||
(working-revision (or working-revision (vc-working-revision (car files)))))
|
||||
(vc-print-log-internal backend files working-revision)))
|
||||
(vc-print-log-internal backend files working-revision limit)))
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-print-root-log ()
|
||||
(defun vc-print-root-log (&optional limit)
|
||||
"List the change log of for the current VC controlled tree in a window."
|
||||
(interactive)
|
||||
(interactive
|
||||
(cond
|
||||
(current-prefix-arg
|
||||
(let ((lim (string-to-number
|
||||
(read-from-minibuffer
|
||||
"Limit display (unlimited: 0): "
|
||||
(format "%s" vc-log-show-limit)
|
||||
nil nil nil))))
|
||||
(when (<= lim 0) (setq lim nil))
|
||||
(list lim)))
|
||||
(t
|
||||
(list nil))))
|
||||
(let ((backend
|
||||
(cond ((derived-mode-p 'vc-dir-mode) vc-dir-backend)
|
||||
(vc-mode (vc-backend buffer-file-name))))
|
||||
@ -1890,7 +1921,7 @@ If WORKING-REVISION is non-nil, leave the point at that revision."
|
||||
(error "Buffer is not version controlled"))
|
||||
(setq rootdir (vc-call-backend backend 'root default-directory))
|
||||
(setq working-revision (vc-working-revision rootdir))
|
||||
(vc-print-log-internal backend (list rootdir) working-revision)))
|
||||
(vc-print-log-internal backend (list rootdir) working-revision limit)))
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-revert ()
|
||||
|
Loading…
Reference in New Issue
Block a user