branch: externals/debbugs
commit 4c9f22bd0903fb7bf9fb034cf7598873fcec5703
Author: Lars Ingebrigtsen <[email protected]>
Commit: Lars Ingebrigtsen <[email protected]>
Command to list blocking reports
* debbugs-gnu.el (debbugs-gnu-show-all-blocking-reports): List
just blocking reports.
---
debbugs-gnu.el | 24 ++++++++++++++++++++++++
debbugs-ug.texi | 27 ++++++++++++++++++---------
2 files changed, 42 insertions(+), 9 deletions(-)
diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index ce225b2..0136831 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -168,6 +168,9 @@
:group 'debbugs
:version "24.1")
+(defvar debbugs-gnu-blocking-report 19759
+ "The ID of the current release report used to track blocking bug reports.")
+
(defcustom debbugs-gnu-default-severities '("serious" "important" "normal")
"*The list severities bugs are searched for.
\"tagged\" is not a severity but marks locally tagged bugs."
@@ -825,6 +828,7 @@ Used instead of `tabulated-list-print-entry'."
(define-key map "b" 'debbugs-gnu-show-blocked-by-reports)
(define-key map "B" 'debbugs-gnu-show-blocking-reports)
(define-key map "C" 'debbugs-gnu-send-control-message)
+ (define-key map "R" 'debbugs-gnu-show-all-blocking-reports)
map))
(defun debbugs-gnu-rescan ()
@@ -977,6 +981,26 @@ The following commands are available:
(message "Bug %d is not blocking any other bug" id)
(apply 'debbugs-gnu-bugs (cdr (assq 'blocks status))))))
+(defun debbugs-gnu-show-all-blocking-reports ()
+ "Narrow the display to just the reports that are blocking a release."
+ (interactive)
+ (let ((blockers (cdr (assq 'blockedby
+ (car (debbugs-get-status
+ debbugs-gnu-blocking-report)))))
+ (id (debbugs-gnu-current-id t))
+ (inhibit-read-only t)
+ status)
+ (setq debbugs-gnu-current-limit nil)
+ (goto-char (point-min))
+ (while (not (eobp))
+ (setq status (debbugs-gnu-current-status))
+ (if (not (memq (cdr (assq 'id status)) blockers))
+ (delete-region (point) (progn (forward-line 1) (point)))
+ (push (cdr (assq 'id status)) debbugs-gnu-current-limit)
+ (forward-line 1)))
+ (when id
+ (debbugs-gnu-goto id))))
+
(defun debbugs-gnu-narrow-to-status (string &optional status-only)
"Only display the bugs matching STRING.
If STATUS-ONLY (the prefix), ignore matches in the From and
diff --git a/debbugs-ug.texi b/debbugs-ug.texi
index 4af04f5..f885125 100644
--- a/debbugs-ug.texi
+++ b/debbugs-ug.texi
@@ -334,15 +334,24 @@ Show the email messages that discuss the bug.
@code{debbugs-gnu-display-status} @*
Show all bug attributes.
-@c @item
-@c @kindex @kbd{/}
-@c @kbd{/} @tab
-@c @code{debbugs-gnu-narrow-to-status}
-
-@c @item
-@c @kindex @kbd{w}
-@c @kbd{w} @tab
-@c @code{debbugs-gnu-widen}
+@item
+@kindex @kbd{/}
+@kbd{/} @tab
+@code{debbugs-gnu-narrow-to-status}
+Narrow the list of bugs to the bugs that match the given regex.
+
+@item
+@kindex @kbd{w}
+@kbd{w} @tab
+@code{debbugs-gnu-widen}
+Restore the full list again after narrowing.
+
+@item
+@kindex @kbd{R}
+@kbd{R} @tab
+@code{debbugs-gnu-show-all-blocking-reports}
+Narrow the list of reports to the ones that are blocking the current
+release.
@item
@kindex @kbd{g}