The log view will show an help at its end when there is more log to
view, and the function is bound to "l" in log view.
---
A reworked version of my older patch. With text at the end of the
buffer to say howto to see more log
magit.el | 49 ++++++++++++++++++++++++++++++++++++++++++++++---
magit.texi | 6 ++++++
2 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/magit.el b/magit.el
index 396ce2a..37c1035 100644
--- a/magit.el
+++ b/magit.el
@@ -116,6 +116,11 @@ Setting this to nil will make it do nothing, setting it to
t will arrange things
:group 'magit
:type 'integer)
+(defcustom magit-log-infinite-length 99999
+ "Number of log used to show as maximum for magit-log-cutoff-length"
+ :group 'magit
+ :type 'integer)
+
(defcustom magit-process-popup-time -1
"Popup the process buffer if a command takes longer than this many seconds."
:group 'magit
@@ -1452,6 +1457,7 @@ FUNC should leave point at the end of the modified region"
(define-key map (kbd "m") 'magit-manual-merge)
(define-key map (kbd "M") 'magit-automatic-merge)
(define-key map (kbd "x") 'magit-reset-head)
+ (define-key map (kbd "l") 'magit-log-show-more-entries)
map))
(defvar magit-reflog-mode-map
@@ -2133,6 +2139,23 @@ must return a string which will represent the log line.")
(when message
(propertize message 'face 'magit-log-message)))))
+(defvar magit-log-count ()
+ "internal var used to count the number of log actualy added in a buffer")
+
+(defmacro magit-create-log-buffer-sections (&rest body)
+ "Empty current buffer of text and magit's section, and then evaluate body.
+
+if the number of logs inserted in the buffer is magit-log-cutoff-length
+insert a line to tell how to insert more of them"
+ (declare (indent 0))
+ `(let ((magit-log-count 0) (inhibit-read-only t))
+ (magit-create-buffer-sections
+ ,@body
+ (if (= magit-log-count magit-log-cutoff-length)
+ (magit-with-section "longer" 'longer
+ (insert "type \"l\" to show more logs\n"))))))
+
+
(defun magit-wash-log-line ()
(beginning-of-line)
(let ((line-re magit-log-oneline-re))
@@ -2151,6 +2174,7 @@ must return a string which will represent the log line.")
(goto-char (point-at-bol))
(if sha1
(magit-with-section sha1 'commit
+ (when magit-log-count (setq magit-log-count (1+
magit-log-count)))
(magit-set-section-info sha1)
(forward-line))
(forward-line))))
@@ -3306,10 +3330,27 @@ Prefix arg means justify as well."
(let ((res (magit-git-exit-code "log" "--decorate=full"
"--max-count=0")))
(setq magit-have-decorate (eq res 0)))))
+(defun magit-log-show-more-entries (&optional arg)
+ "Grow the number of log entries shown.
+
+With no prefix optional ARG, show twice as much log entries.
+With a numerical prefix ARG, add this number to the number of shown log
entries.
+With a non numeric prefix ARG, show all entries"
+ (interactive "P")
+ (make-local-variable 'magit-log-cutoff-length)
+ (cond
+ ((numberp arg)
+ (setq magit-log-cutoff-length (+ magit-log-cutoff-length added)))
+ (arg
+ (setq magit-log-cutoff-length magit-log-infinite-length))
+ (t (setq magit-log-cutoff-length (* magit-log-cutoff-length 2))))
+ (magit-refresh))
+
+
(defun magit-refresh-log-buffer (range style args)
(magit-configure-have-graph)
(magit-configure-have-decorate)
- (magit-create-buffer-sections
+ (magit-create-log-buffer-sections
(apply #'magit-git-section nil
(magit-rev-range-describe range "Commits")
'magit-wash-log
@@ -3366,7 +3407,7 @@ Prefix arg means justify as well."
;;; Reflog
(defun magit-refresh-reflog-buffer (head args)
- (magit-create-buffer-sections
+ (magit-create-log-buffer-sections
(magit-git-section 'reflog
(format "Local history of head %s" head)
'magit-wash-log
@@ -3608,7 +3649,9 @@ Prefix arg means justify as well."
(magit-show-stash info)
(pop-to-buffer "*magit-stash*"))
((topic)
- (magit-checkout info))))
+ (magit-checkout info))
+ ((longer)
+ (magit-log-show-more-entries ()))))
(defun magit-show-item-or-scroll-up ()
(interactive)
diff --git a/magit.texi b/magit.texi
index 3a399ca..1ff8136 100644
--- a/magit.texi
+++ b/magit.texi
@@ -330,6 +330,12 @@ in one branch, but not in another, for example.
Typing @kbd{L} (or @kbd{C-u L}) will show the log in a more verbose
form.
+Magit will show only @code{magit-log-cutoff-length} entries. @kbd{l}
+will show twice as much entries. @kbd{C-u l} will show all entries,
+and given a numeric prefix argument, @kbd{l} will add this number of
+entries. You can also show more entry by typing @kbd{RET} on the text
+appended at the end of the buffer.
+
You can move point to a commit and then cause various things to happen
with it. (The following commands work in any list of commit, such as
the one shown in the @emph{Unpushed commits} section.)
--
1.7.0.4
--
To unsubscribe, reply using "remove me" as the subject.