[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs etc/NEWS lisp/ChangeLog lisp/vc-annotate....
From: |
Dan Nicolaescu |
Subject: |
[Emacs-diffs] emacs etc/NEWS lisp/ChangeLog lisp/vc-annotate.... |
Date: |
Mon, 07 Dec 2009 09:02:17 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Dan Nicolaescu <dann> 09/12/07 09:02:17
Modified files:
etc : NEWS
lisp : ChangeLog vc-annotate.el vc-bzr.el vc-cvs.el
vc-git.el vc-hg.el vc-mtn.el vc-rcs.el
vc-sccs.el vc-svn.el vc.el
Log message:
Support showing a single log entry from vc-annotate.
* vc.el (print-log): Add a new argument: START-REVISION.
(vc-print-log-internal): Add a new optional argument and
pass it to the backend.
(vc-print-log, vc-print-root-log): Adjust callers.
* vc-annotate.el (vc-annotate-show-log-revision-at-line): If a
buffer already displays the requested log entry, use it.
Otherwise display only the log entry in question.
* vc-svn.el (vc-svn-print-log):
* vc-mtn.el (log-view-file-re):
* vc-hg.el (vc-hg-state):
* vc-git.el (vc-git-print-log): Add support for new argument
START-REVISION.
(vc-git-show-log-entry): Return t on success.
* vc-bzr.el (vc-bzr-print-log): Add support new argument START-REVISION.
(vc-bzr-show-log-entry): Return t on success.
* vc-rcs.el (vc-rcs-print-log):
* vc-sccs.el (vc-sccs-print-log):
* vc-cvs.el (vc-cvs-print-log): Add new argument, ignore it.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/etc/NEWS?cvsroot=emacs&r1=1.2143&r2=1.2144
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.16854&r2=1.16855
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-annotate.el?cvsroot=emacs&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-bzr.el?cvsroot=emacs&r1=1.91&r2=1.92
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-cvs.el?cvsroot=emacs&r1=1.173&r2=1.174
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-git.el?cvsroot=emacs&r1=1.104&r2=1.105
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-hg.el?cvsroot=emacs&r1=1.107&r2=1.108
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-mtn.el?cvsroot=emacs&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-rcs.el?cvsroot=emacs&r1=1.99&r2=1.100
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-sccs.el?cvsroot=emacs&r1=1.71&r2=1.72
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-svn.el?cvsroot=emacs&r1=1.120&r2=1.121
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc.el?cvsroot=emacs&r1=1.745&r2=1.746
Patches:
Index: etc/NEWS
===================================================================
RCS file: /cvsroot/emacs/emacs/etc/NEWS,v
retrieving revision 1.2143
retrieving revision 1.2144
diff -u -b -r1.2143 -r1.2144
--- etc/NEWS 7 Dec 2009 06:30:30 -0000 1.2143
+++ etc/NEWS 7 Dec 2009 09:02:11 -0000 1.2144
@@ -267,6 +267,10 @@
the corresponding lines. Currently only Git and Mercurial take
advantage of this feature.
+*** The log command in vc-annotate can display a single log entry
+instead of redisplaying the full log. The RCS, CVS and SCCS VC
+backends do not support this.
+
*** When a file is not found, VC will not try to check it out of RCS anymore.
*** Diff and log operations can be used from dired buffers.
Index: lisp/ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.16854
retrieving revision 1.16855
diff -u -b -r1.16854 -r1.16855
--- lisp/ChangeLog 7 Dec 2009 06:56:40 -0000 1.16854
+++ lisp/ChangeLog 7 Dec 2009 09:02:12 -0000 1.16855
@@ -1,12 +1,33 @@
+2009-12-07 Dan Nicolaescu <address@hidden>
+
+ Support showing a single log entry from vc-annotate.
+ * vc.el (print-log): Add a new argument: START-REVISION.
+ (vc-print-log-internal): Add a new optional argument and
+ pass it to the backend.
+ (vc-print-log, vc-print-root-log): Adjust callers.
+ * vc-annotate.el (vc-annotate-show-log-revision-at-line): If a
+ buffer already displays the requested log entry, use it.
+ Otherwise display only the log entry in question.
+ * vc-svn.el (vc-svn-print-log):
+ * vc-mtn.el (log-view-file-re):
+ * vc-hg.el (vc-hg-state):
+ * vc-git.el (vc-git-print-log): Add support for new argument
START-REVISION.
+ (vc-git-show-log-entry): Return t on success.
+ * vc-bzr.el (vc-bzr-print-log): Add support new argument START-REVISION.
+ (vc-bzr-show-log-entry): Return t on success.
+ * vc-rcs.el (vc-rcs-print-log):
+ * vc-sccs.el (vc-sccs-print-log):
+ * vc-cvs.el (vc-cvs-print-log): Add new argument, ignore it.
+
2009-12-07 Michael Kifer <address@hidden>
- * ediff-init.el (ediff-event-key): use event-to-character instead of
+ * ediff-init.el (ediff-event-key): Use event-to-character instead of
event-key.
- * ediff-mult.el (ediff-setup-meta-map, ediff-prepare-meta-buffer): add
+ * ediff-mult.el (ediff-setup-meta-map, ediff-prepare-meta-buffer): Add
menus to the meta mode. (Dan Nicolaescu's <address@hidden> patch.)
- * ediff.el (ediff-buffers-internal): add unwind-protect.
+ * ediff.el (ediff-buffers-internal): Add unwind-protect.
2009-12-07 Michael Albinus <address@hidden>
Index: lisp/vc-annotate.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-annotate.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- lisp/vc-annotate.el 25 Nov 2009 23:47:35 -0000 1.12
+++ lisp/vc-annotate.el 7 Dec 2009 09:02:15 -0000 1.13
@@ -479,15 +479,37 @@
(vc-annotate-warp-revision prev-rev fname)))))
(defun vc-annotate-show-log-revision-at-line ()
- "Visit the log of the revision at line."
+ "Visit the log of the revision at line.
+If the VC backend supports it, only show the log entry for the revision.
+If a *vc-change-log* buffer exists and already shows a log for
+the file in question, search for the log entry required and move point ."
(interactive)
(if (not (equal major-mode 'vc-annotate-mode))
(message "Cannot be invoked outside of a vc annotate buffer")
(let ((rev-at-line (vc-annotate-extract-revision-at-line)))
(if (not rev-at-line)
(message "Cannot extract revision number from the current line")
+ (let ((backend vc-annotate-backend)
+ (log-buf (get-buffer "*vc-change-log*"))
+ pos)
+ (if (and
+ log-buf
+ ;; Look for a log buffer that already displays the correct file.
+ (with-current-buffer log-buf
+ (and (eq backend log-view-vc-backend)
+ (null (cdr log-view-vc-fileset))
+ (string= (car log-view-vc-fileset) (cdr rev-at-line))
+ ;; Check if the entry we require can be found.
+ (vc-call-backend
+ backend 'show-log-entry (car rev-at-line))
+ (setq pos (point)))))
+ (progn
+ (pop-to-buffer log-buf)
+ (goto-char pos))
+ ;; Ask the backend to display a single log entry.
(vc-print-log-internal
- vc-annotate-backend (list (cdr rev-at-line)) (car rev-at-line) nil)))))
+ vc-annotate-backend (list (cdr rev-at-line))
+ (car rev-at-line) t 1)))))))
(defun vc-annotate-show-diff-revision-at-line-internal (filediff)
(if (not (equal major-mode 'vc-annotate-mode))
Index: lisp/vc-bzr.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-bzr.el,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- lisp/vc-bzr.el 6 Dec 2009 23:27:58 -0000 1.91
+++ lisp/vc-bzr.el 7 Dec 2009 09:02:15 -0000 1.92
@@ -481,7 +481,7 @@
(2 'change-log-email))
("^ *timestamp: \\(.*\\)" (1 'change-log-date-face)))))))
-(defun vc-bzr-print-log (files buffer &optional shortlog limit)
+(defun vc-bzr-print-log (files buffer &optional shortlog start-revision limit)
"Get bzr change log for FILES into specified BUFFER."
;; `vc-do-command' creates the buffer, but we need it before running
;; the command.
@@ -495,6 +495,7 @@
(apply 'vc-bzr-command "log" buffer 'async files
(append
(when shortlog '("--short"))
+ (when start-revision (list (format "-r..%s" start-revision)))
(when limit (list "-l" (format "%s" limit)))
(if (stringp vc-bzr-log-switches)
(list vc-bzr-log-switches)
@@ -504,7 +505,8 @@
"Find entry for patch name REVISION in bzr change log buffer."
(goto-char (point-min))
(when revision
- (let (case-fold-search)
+ (let (case-fold-search
+ found)
(if (re-search-forward
;; "revno:" can appear either at the beginning of a line,
;; or indented.
@@ -512,8 +514,11 @@
;; The revision can contain ".", quote it so that it
;; does not interfere with regexp matching.
(regexp-quote revision) "$") nil t)
+ (progn
(beginning-of-line 0)
- (goto-char (point-min))))))
+ (setq found t))
+ (goto-char (point-min)))
+ found)))
(defun vc-bzr-diff (files &optional rev1 rev2 buffer)
"VC bzr backend for diff."
Index: lisp/vc-cvs.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-cvs.el,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -b -r1.173 -r1.174
--- lisp/vc-cvs.el 16 Nov 2009 20:36:11 -0000 1.173
+++ lisp/vc-cvs.el 7 Dec 2009 09:02:16 -0000 1.174
@@ -496,7 +496,7 @@
(declare-function vc-rcs-print-log-cleanup "vc-rcs" ())
-(defun vc-cvs-print-log (files buffer &optional shortlog limit)
+(defun vc-cvs-print-log (files buffer &optional shortlog
start-revision-ignored limit)
"Get change logs associated with FILES."
(require 'vc-rcs)
;; It's just the catenation of the individual logs.
Index: lisp/vc-git.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-git.el,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -b -r1.104 -r1.105
--- lisp/vc-git.el 6 Dec 2009 22:18:06 -0000 1.104
+++ lisp/vc-git.el 7 Dec 2009 09:02:16 -0000 1.105
@@ -77,7 +77,7 @@
;; - merge-news (file) see `merge'
;; - steal-lock (file &optional revision) NOT NEEDED
;; HISTORY FUNCTIONS
-;; * print-log (files buffer &optional shortlog limit) OK
+;; * print-log (files buffer &optional shortlog start-revision limit) OK
;; - log-view-mode () OK
;; - show-log-entry (revision) OK
;; - comment-history (file) ??
@@ -540,7 +540,7 @@
;;; HISTORY FUNCTIONS
-(defun vc-git-print-log (files buffer &optional shortlog limit)
+(defun vc-git-print-log (files buffer &optional shortlog start-revision 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
@@ -559,6 +559,7 @@
'("--graph" "--decorate"
"--date=short" "--pretty=format:%d%h %ad %s"
"--abbrev-commit"))
(when limit (list "-n" (format "%s" limit)))
+ (when start-revision (list start-revision))
'("--")))))))
(defvar log-view-message-re)
@@ -615,14 +616,17 @@
REVISION may have the form BRANCH, BRANCH~N,
or BRANCH^ (where \"^\" can be repeated)."
(goto-char (point-min))
+ (let (found)
(when revision
+ (setq found
(search-forward (format "\ncommit %s" revision) nil t
(cond ((string-match "~\\([0-9]\\)$" revision)
(1+ (string-to-number (match-string 1 revision))))
((string-match "\\^+$" revision)
(1+ (length (match-string 0 revision))))
- (t nil))))
- (beginning-of-line))
+ (t nil)))))
+ (beginning-of-line)
+ found))
(defun vc-git-diff (files &optional rev1 rev2 buffer)
"Get a difference report using Git between two revisions of FILES."
Index: lisp/vc-hg.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-hg.el,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -b -r1.107 -r1.108
--- lisp/vc-hg.el 18 Nov 2009 19:12:26 -0000 1.107
+++ lisp/vc-hg.el 7 Dec 2009 09:02:16 -0000 1.108
@@ -68,7 +68,7 @@
;; - merge-news (file) NEEDED
;; - steal-lock (file &optional revision) NOT NEEDED
;; HISTORY FUNCTIONS
-;; * print-log (files buffer &optional shortlog) OK
+;; * print-log (files buffer &optional shortlog start-revision limit) OK
;; - log-view-mode () OK
;; - show-log-entry (revision) NOT NEEDED, DEFAULT IS GOOD
;; - comment-history (file) NOT NEEDED
@@ -167,9 +167,13 @@
(setq status
(condition-case nil
;; Ignore all errors.
+ (let ((process-environment
+ ;; Avoid localization of messages so we can parse
the output.
+ (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=")
process-environment)))
+
(process-file
"hg" nil t nil
- "status" "-A" (file-relative-name file))
+ "status" "-A" (file-relative-name file)))
;; Some problem happened. E.g. We can't find an `hg'
;; executable.
(error nil)))))))
@@ -219,7 +223,7 @@
(repeat :tag "Argument List" :value ("") string))
:group 'vc-hg)
-(defun vc-hg-print-log (files buffer &optional shortlog limit)
+(defun vc-hg-print-log (files buffer &optional shortlog limit start-revision)
"Get change log associated with FILES."
;; `vc-do-command' creates the buffer, but we need it before running
;; the command.
@@ -231,6 +235,7 @@
buffer
(apply 'vc-hg-command buffer 0 files "log"
(append
+ (when start-revision (list (format "-r%s:" start-revision)))
(when limit (list "-l" (format "%s" limit)))
(when shortlog '("--style" "compact"))
vc-hg-log-switches)))))
Index: lisp/vc-mtn.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-mtn.el,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- lisp/vc-mtn.el 15 Nov 2009 20:29:02 -0000 1.27
+++ lisp/vc-mtn.el 7 Dec 2009 09:02:16 -0000 1.28
@@ -188,9 +188,11 @@
;; (defun vc-mtn-roolback (files)
;; )
-(defun vc-mtn-print-log (files buffer &optional shortlog limit)
+(defun vc-mtn-print-log (files buffer &optional shortlog start-revision limit)
(apply 'vc-mtn-command buffer 0 files "log"
- (when limit (list "--last" (format "%s" limit)))))
+ (append
+ (when start-revision (list "--from" (format "%s" start-revision))
+ (when limit (list "--last" (format "%s" limit)))))))
(defvar log-view-message-re)
(defvar log-view-file-re)
Index: lisp/vc-rcs.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-rcs.el,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -b -r1.99 -r1.100
--- lisp/vc-rcs.el 16 Nov 2009 20:36:11 -0000 1.99
+++ lisp/vc-rcs.el 7 Dec 2009 09:02:16 -0000 1.100
@@ -559,7 +559,7 @@
(when (looking-at "[\b\t\n\v\f\r ]+")
(delete-char (- (match-end 0) (match-beginning 0))))))
-(defun vc-rcs-print-log (files buffer &optional shortlog limit)
+(defun vc-rcs-print-log (files buffer &optional shortlog
start-revision-ignored 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)))
Index: lisp/vc-sccs.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-sccs.el,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -b -r1.71 -r1.72
--- lisp/vc-sccs.el 16 Nov 2009 20:36:11 -0000 1.71
+++ lisp/vc-sccs.el 7 Dec 2009 09:02:16 -0000 1.72
@@ -335,7 +335,7 @@
;;; History functions
;;;
-(defun vc-sccs-print-log (files buffer &optional shortlog limit)
+(defun vc-sccs-print-log (files buffer &optional shortlog
start-revision-ignored limit)
"Get change log associated with FILES."
(setq files (vc-expand-dirs files))
(vc-sccs-do-command buffer 0 "prs" (mapcar 'vc-name files))
Index: lisp/vc-svn.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-svn.el,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -b -r1.120 -r1.121
--- lisp/vc-svn.el 17 Nov 2009 04:35:36 -0000 1.120
+++ lisp/vc-svn.el 7 Dec 2009 09:02:16 -0000 1.121
@@ -462,7 +462,7 @@
(require 'add-log)
(set (make-local-variable 'log-view-per-file-logs) nil))
-(defun vc-svn-print-log (files buffer &optional shortlog limit)
+(defun vc-svn-print-log (files buffer &optional shortlog start-revision limit)
"Get change log(s) associated with FILES."
(save-current-buffer
(vc-setup-buffer buffer)
@@ -478,15 +478,22 @@
;; (if (and (= (length files) 1) (vc-stay-local-p file
'SVN)) 'async 0)
(list file)
"log"
+ (append
+ (list
+ (if start-revision
+ (format "-r%s" start-revision)
;; By default Subversion only shows the log up to the
;; 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"
- (when limit (list "-l" (format "%s" limit)))))
+ "-rHEAD:0"))
+ (when limit (list "-l" (format "%s" limit))))))
;; Dump log for the entire directory.
- (apply 'vc-svn-command buffer 0 nil "log" "-rHEAD:0"
- (when limit (list "-l" (format "%s" limit))))))))
+ (apply 'vc-svn-command buffer 0 nil "log"
+ (append
+ (list
+ (if start-revision (format "-r%s" start-revision) "-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."
Index: lisp/vc.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc.el,v
retrieving revision 1.745
retrieving revision 1.746
diff -u -b -r1.745 -r1.746
--- lisp/vc.el 3 Dec 2009 19:12:55 -0000 1.745
+++ lisp/vc.el 7 Dec 2009 09:02:16 -0000 1.746
@@ -333,13 +333,16 @@
;;
;; HISTORY FUNCTIONS
;;
-;; * print-log (files buffer &optional shortlog limit)
+;; * print-log (files buffer &optional shortlog start-revision limit)
;;
;; 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. If the
;; backend does not support limiting the number of entries to show
;; it should return `limit-unsupported'.
+;; If START-REVISION is given, then show the log starting from the
+;; revision. At this point START-REVISION is only required to work
+;; in conjunction with LIMIT = 1.
;;
;; - log-view-mode ()
;;
@@ -1863,7 +1866,7 @@
(defvar log-view-vc-fileset)
(defun vc-print-log-internal (backend files working-revision
- &optional limit)
+ &optional is-start-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.
@@ -1878,8 +1881,9 @@
(memq 'directory vc-log-short-style)
(memq 'file vc-log-short-style)))))
- (setq pl-return (vc-call-backend backend 'print-log files "*vc-change-log*"
- vc-short-log limit))
+ (setq pl-return (vc-call-backend
+ backend 'print-log files "*vc-change-log*"
+ vc-short-log (when is-start-revision working-revision)
limit))
(pop-to-buffer "*vc-change-log*")
(let ((inhibit-read-only t))
;; log-view-mode used to be called with inhibit-read-only bound
@@ -1890,19 +1894,20 @@
(vc-exec-after
`(let ((inhibit-read-only t))
- (when (and ,limit (not ,(eq 'limit-unsupported pl-return)))
+ (when (and ,limit (not ,(eq 'limit-unsupported pl-return))
+ (not ,is-start-revision))
(goto-char (point-max))
(widget-create 'push-button
:notify (lambda (&rest ignore)
(vc-print-log-internal
- ',backend ',files ',working-revision (* 2
,limit)))
+ ',backend ',files ',working-revision nil (*
2 ,limit)))
:help-echo "Show the log again, and double the number
of log entries shown"
"Show 2X entries")
(widget-insert " ")
(widget-create 'push-button
:notify (lambda (&rest ignore)
(vc-print-log-internal
- ',backend ',files ',working-revision nil))
+ ',backend ',files ',working-revision nil
nil))
:help-echo "Show the log again, showing all entries"
"Show unlimited entries")
(widget-setup))
@@ -1936,7 +1941,7 @@
(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 limit)))
+ (vc-print-log-internal backend files working-revision nil limit)))
;;;###autoload
(defun vc-print-root-log (&optional limit)
@@ -1962,7 +1967,7 @@
(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 limit)))
+ (vc-print-log-internal backend (list rootdir) working-revision nil limit)))
;;;###autoload
(defun vc-revert ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs etc/NEWS lisp/ChangeLog lisp/vc-annotate....,
Dan Nicolaescu <=