]> code.delx.au - gnu-emacs-elpa/commitdiff
Command to list blocking reports
authorLars Ingebrigtsen <larsi@gnus.org>
Fri, 25 Dec 2015 20:25:30 +0000 (21:25 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Fri, 25 Dec 2015 20:25:30 +0000 (21:25 +0100)
* debbugs-gnu.el (debbugs-gnu-show-all-blocking-reports): List
just blocking reports.

packages/debbugs/debbugs-gnu.el
packages/debbugs/debbugs-ug.texi

index ce225b21bea97764f56639983b8170c9cab3aea7..0136831dfa350d3a2f9a2505cf557aa07a6a8fc1 100644 (file)
   :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
index 4af04f507ef6c9ed496c8c3b6b17fdb3a9831d2c..f88512578319b3b4488c941e984acdb498f36650 100644 (file)
@@ -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}