[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/git-commit 384b70921f: magit-revision-insert-related-refs-
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/git-commit 384b70921f: magit-revision-insert-related-refs-exclude: New option |
Date: |
Mon, 6 Mar 2023 09:00:18 -0500 (EST) |
branch: elpa/git-commit
commit 384b70921f2ead85310bda4b9bcfd02453cf1e24
Author: Phil Sainty <phil@catalyst.net.nz>
Commit: Jonas Bernoulli <jonas@bernoul.li>
magit-revision-insert-related-refs-exclude: New option
Finer granularity for `magit-insert-revision-headers'.
---
lisp/magit-diff.el | 104 ++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 72 insertions(+), 32 deletions(-)
diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 4fd4844ed6..a032e9cef0 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -377,7 +377,10 @@ subject to option `magit-revision-insert-related-refs'."
`nil' Don't show any related branches.
`t' Show related local branches.
`all' Show related local and remote branches.
-`mixed' Show all containing branches and local merged branches."
+`mixed' Show all containing branches and local merged branches.
+
+See user option `magit-revision-insert-related-refs-display-alist'
+to hide specific sets of related branches."
:package-version '(magit . "2.1.0")
:group 'magit-revision
:type '(choice (const :tag "don't" nil)
@@ -385,6 +388,31 @@ subject to option `magit-revision-insert-related-refs'."
(const :tag "all related" all)
(const :tag "all containing, local merged" mixed)))
+(defcustom magit-revision-insert-related-refs-display-alist nil
+ "How `magit-insert-revision-headers' displays related branch types.
+
+This is an alist, with recognised keys being the symbols
+`parents', `merged', `contained', `follows', and `precedes';
+and the supported values for each key being:
+
+`nil' Hide these related branches.
+`t' Show these related branches.
+
+Keys which are not present in the alist have an implicit value `t'
+\(so the default alist value of nil means all related branch types
+will be shown.)
+
+The types to be shown are additionally subject to user option
+`magit-revision-insert-related-refs'."
+ :package-version '(magit . "3.3.1")
+ :group 'magit-revision
+ :type '(alist :key-type (symbol :tag "Type of related branch")
+ :value-type (boolean :tag "Display"))
+ :options (mapcar (lambda (sym)
+ `(,sym (choice (const :tag "Hide" nil)
+ (const :tag "Show" t))))
+ '(parents merged contained follows precedes)))
+
(defcustom magit-revision-use-hash-sections 'quicker
"Whether to turn hashes inside the commit message into sections.
@@ -2700,39 +2728,51 @@ or a ref which is not a branch, then it inserts
nothing."
magit-buffer-revision)
(magit-insert-revision-gravatars magit-buffer-revision beg))
(when magit-revision-insert-related-refs
- (dolist (parent (magit-commit-parents magit-buffer-revision))
- (magit-insert-section (commit parent)
- (let ((line (magit-rev-format "%h %s" parent)))
- (string-match "^\\([^ ]+\\) \\(.*\\)" line)
- (magit-bind-match-strings (hash msg) line
- (insert "Parent: ")
- (insert (propertize hash 'font-lock-face 'magit-hash))
- (insert " " msg "\n")))))
- (magit--insert-related-refs
- magit-buffer-revision "--merged" "Merged"
- (eq magit-revision-insert-related-refs 'all))
- (magit--insert-related-refs
- magit-buffer-revision "--contains" "Contained"
- (memq magit-revision-insert-related-refs '(all mixed)))
- (when-let ((follows (magit-get-current-tag magit-buffer-revision t)))
- (let ((tag (car follows))
- (cnt (cadr follows)))
- (magit-insert-section (tag tag)
- (insert
- (format "Follows: %s (%s)\n"
- (propertize tag 'font-lock-face 'magit-tag)
- (propertize (number-to-string cnt)
- 'font-lock-face 'magit-branch-local))))))
- (when-let ((precedes (magit-get-next-tag magit-buffer-revision t)))
- (let ((tag (car precedes))
- (cnt (cadr precedes)))
- (magit-insert-section (tag tag)
- (insert (format "Precedes: %s (%s)\n"
- (propertize tag 'font-lock-face 'magit-tag)
- (propertize (number-to-string cnt)
- 'font-lock-face 'magit-tag))))))
+ (when (magit-revision-insert-related-refs-display-p 'parents)
+ (dolist (parent (magit-commit-parents magit-buffer-revision))
+ (magit-insert-section (commit parent)
+ (let ((line (magit-rev-format "%h %s" parent)))
+ (string-match "^\\([^ ]+\\) \\(.*\\)" line)
+ (magit-bind-match-strings (hash msg) line
+ (insert "Parent: ")
+ (insert (propertize hash 'font-lock-face 'magit-hash))
+ (insert " " msg "\n"))))))
+ (when (magit-revision-insert-related-refs-display-p 'merged)
+ (magit--insert-related-refs
+ magit-buffer-revision "--merged" "Merged"
+ (eq magit-revision-insert-related-refs 'all)))
+ (when (magit-revision-insert-related-refs-display-p 'contained)
+ (magit--insert-related-refs
+ magit-buffer-revision "--contains" "Contained"
+ (memq magit-revision-insert-related-refs '(all mixed))))
+ (when (magit-revision-insert-related-refs-display-p 'follows)
+ (when-let ((follows (magit-get-current-tag magit-buffer-revision t)))
+ (let ((tag (car follows))
+ (cnt (cadr follows)))
+ (magit-insert-section (tag tag)
+ (insert
+ (format "Follows: %s (%s)\n"
+ (propertize tag 'font-lock-face 'magit-tag)
+ (propertize (number-to-string cnt)
+ 'font-lock-face 'magit-branch-local)))))))
+ (when (magit-revision-insert-related-refs-display-p 'precedes)
+ (when-let ((precedes (magit-get-next-tag magit-buffer-revision t)))
+ (let ((tag (car precedes))
+ (cnt (cadr precedes)))
+ (magit-insert-section (tag tag)
+ (insert (format "Precedes: %s (%s)\n"
+ (propertize tag 'font-lock-face 'magit-tag)
+ (propertize (number-to-string cnt)
+ 'font-lock-face 'magit-tag)))))))
(insert ?\n))))
+(defun magit-revision-insert-related-refs-display-p (sym)
+ "Whether to display related branches of type SYM.
+Refer to user option `magit-revision-insert-related-refs-display-alist'."
+ (if-let ((elt (assq sym magit-revision-insert-related-refs-display-alist)))
+ (cdr elt)
+ t))
+
(defun magit--insert-related-refs (rev arg title remote)
(when-let ((refs (magit-list-related-branches arg rev (and remote "-a"))))
(insert title ":" (make-string (- 10 (length title)) ?\s))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/git-commit 384b70921f: magit-revision-insert-related-refs-exclude: New option,
ELPA Syncer <=