;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315& \210\316\317\320\321\312\322%\210\316\323\324\325\312\322%\210\316\326\327\330\312\322%\207" [require magit custom-declare-variable magit-bisect-show-graph funcall function #[0 "\300\207" [t] 1] "Whether to use `--graph' in the log showing commits yet to be bisected." :package-version (magit . "2.8.0") :group magit-status :type boolean custom-declare-face magit-bisect-good ((t :foreground "DarkOliveGreen")) "Face for good bisect revisions." magit-faces magit-bisect-skip ((t :foreground "DarkGoldenrod")) "Face for skipped bisect revisions." magit-bisect-bad ((t :foreground "IndianRed4")) "Face for bad bisect revisions."] 10) (defalias 'magit-bisect #[0 "\300\301!\207" [transient-setup magit-bisect] 2 nil nil]) (byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312$#\210\300\301\313\314#\207" [put magit-bisect interactive-only t function-documentation "Narrow in on the commit that introduced a bug." transient--prefix transient-prefix :command :man-page "git-bisect" transient--layout ([1 transient-subgroups (:if-not magit-bisect-in-progress-p) ([1 transient-column (:description "Arguments") ((1 transient-switch (:key "-n" :description "Don't checkout commits" :argument "--no-checkout" :command transient:magit-bisect:--no-checkout)) (1 transient-switch (:key "-p" :description "Follow only first parent of a merge" :argument "--first-parent" :command transient:magit-bisect:--first-parent :if (lambda nil (version<= "2.29" (magit-git-version))))) (6 transient-suffix (:command magit-bisect:--term-old :if (lambda nil (version<= "2.7" (magit-git-version))))) (6 transient-suffix (:command magit-bisect:--term-new :if (lambda nil (version<= "2.7" (magit-git-version))))))] [1 transient-column (:description "Actions") ((1 transient-suffix (:key "B" :description "Start" :command magit-bisect-start)) (1 transient-suffix (:key "s" :description "Start script" :command magit-bisect-run)))])] [1 transient-column (:description "Actions" :if magit-bisect-in-progress-p) ((1 transient-suffix (:key "B" :description "Bad" :command magit-bisect-bad)) (1 transient-suffix (:key "g" :description "Good" :command magit-bisect-good)) (6 transient-suffix (:key "m" :description "Mark" :command magit-bisect-mark :if (lambda nil (version<= "2.7" (magit-git-version))))) (1 transient-suffix (:key "k" :description "Skip" :command magit-bisect-skip)) (1 transient-suffix (:key "r" :description "Reset" :command magit-bisect-reset)) (1 transient-suffix (:key "s" :description "Run script" :command magit-bisect-run)))])] 8) (defalias 'magit-bisect:--term-old #[0 "\300 \301\302!\"\266\303 \207" [transient-suffix-object transient-infix-set transient-infix-read transient--show] 5 nil nil]) (byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\207" [put magit-bisect:--term-old interactive-only t function-documentation nil transient--suffix transient-option :command :description "Old/good term" :key "=o" :argument "--term-old="] 12) (defalias 'magit-bisect:--term-new #[0 "\300 \301\302!\"\266\303 \207" [transient-suffix-object transient-infix-set transient-infix-read transient--show] 5 nil nil]) (byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\207" [put magit-bisect:--term-new interactive-only t function-documentation nil transient--suffix transient-option :command :description "New/bad term" :key "=n" :argument "--term-new="] 12) #@328 Start a bisect session. Bisecting a bug means to find the commit that introduced it. This command starts such a bisect session by asking for a known good and a known bad commit. To move the session forward use the other actions from the bisect transient command (\\[magit-bisect]). (fn BAD GOOD ARGS) (defalias 'magit-bisect-start #[771 "\300\"\204\301\302\303\304\"\206\305\303\306\"\206\307%\210\310 \203(\301\311!\210\312\313E\314#\207" [magit-rev-ancestor-p user-error "The %s revision (%s) has to be an ancestor of the %s one (%s)" transient-arg-value "--term-old=" "good" "--term-new=" "bad" magit-anything-modified-p "Cannot bisect with uncommitted changes" magit-git-bisect "start" t] 10 (#$ . 3652) (byte-code "\300 \203 \301\302!\207\303 \207" [magit-bisect-in-progress-p user-error "Already bisecting" magit-bisect-start-read-args] 2)]) (defalias 'magit-bisect-start-read-args #[0 "\300\301!\302\303\304\305\306\"\206\307\"!\211\310\303\311\305\312\"\206\313\"\"E\207" [transient-args magit-bisect magit-read-branch-or-commit format "Start bisect with %s revision" transient-arg-value "--term-new=" "bad" magit-read-other-branch-or-commit "%s revision" "--term-old=" "Good"] 9]) #@73 After bisecting, cleanup bisection state and return to original `HEAD'. (defalias 'magit-bisect-reset #[0 "\300\301!\210\302\303\304\"\210\3051\306\307\310!!0\207\210\311\207" [magit-confirm reset-bisect magit-run-git "bisect" "reset" (error) delete-file magit-git-dir "BISECT_CMD_OUTPUT" nil] 3 (#$ . 4902) nil]) #@138 While bisecting, mark the current commit as good. Use this after you have asserted that the commit does not contain the bug in question. (defalias 'magit-bisect-good #[0 "\300\301 A@\206 \302\303!!\207" [magit-git-bisect magit-bisect-terms user-error "Not bisecting"] 3 (#$ . 5225) nil]) #@133 While bisecting, mark the current commit as bad. Use this after you have asserted that the commit does contain the bug in question. (defalias 'magit-bisect-bad #[0 "\300\301 @\206\n\302\303!!\207" [magit-git-bisect magit-bisect-terms user-error "Not bisecting"] 3 (#$ . 5521) nil]) #@437 While bisecting, mark the current commit with a bisect term. During a bisect using alternate terms, commits can still be marked with `magit-bisect-good' and `magit-bisect-bad', as those commands map to the correct term ("good" to --term-old's value and "bad" to --term-new's). However, in some cases, it can be difficult to keep that mapping straight in your head; this command provides an interface that exposes the underlying terms. (defalias 'magit-bisect-mark #[0 "\300\301 \206 \302\303!\211\242\243\211\242\243\304\305\306#\307\310D\"\211\311\267\202+\202,\202,\312\262\266\206\262!\207" [magit-git-bisect magit-bisect-terms user-error "Not bisecting" read-char-choice format "Mark HEAD as %s ([n]ew) or %s ([o]ld)" 110 111 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (110 35 111 39)) nil] 13 (#$ . 5811) nil]) #@164 While bisecting, skip the current commit. Use this if for some reason the current commit is not a good one to test. This command lets Git choose a different one. (defalias 'magit-bisect-skip #[0 "\300\301!\207" [magit-git-bisect "skip"] 2 (#$ . 6691) nil]) #@233 Bisect automatically by running commands after each step. Unlike `git bisect run' this can be used before bisecting has begun. In that case it behaves like `git bisect start; git bisect run'. (fn CMDLINE &optional BAD GOOD ARGS) (defalias 'magit-bisect-run #[1025 "\2035\2035\304 \211\2031\211\305\306 \307\310\311\312!D\307\313\314\315\f\f\f\257!&\210\316 \210)\210\2025\317 \266\320\321\n E\"\207" [default-directory magit-git-executable shell-file-name shell-command-switch magit-toplevel apply magit-process-file nil :file magit-git-dir "BISECT_CMD_OUTPUT" magit-process-git-arguments "bisect" "start" magit-refresh magit--not-inside-repository-error magit-git-bisect "run"] 17 (#$ . 6956) (byte-code "\300 ?\205\301 \302\303!B\207" [magit-bisect-in-progress-p magit-bisect-start-read-args read-shell-command "Bisect shell command: "] 3)]) #@44 (fn SUBCOMMAND &optional ARGS NO-ASSERT) (defalias 'magit-git-bisect #[769 "\211\204 \302 \204 \303\304!\210\305\306!\210\307 \211\203$\211\310\311#\210)\210\202(\312 \266\313 \314\"\207" [default-directory magit-this-process magit-bisect-in-progress-p user-error "Not bisecting" message "Bisecting..." magit-toplevel magit-run-git-async "bisect" magit--not-inside-repository-error set-process-sentinel #[514 "\300!\301>\205s\302!\303V\203\304\"\210\202p\305\306\307#\210\304\"\210\310\311!!\203mr\311!q\210\312`\313\"\211\205C\314\315\316\"\315\317\"\"\211\203j\320\321!\322\323\307\"\324\325\"\216r\211q\210c\210)r\211q\210\326\327\211\327\303%\210*\266\266)\330 \210\331\332!\207" [process-status (exit signal) process-exit-status 0 magit-process-sentinel process-put inhibit-refresh t buffer-live-p process-buffer get-text-property magit-section buffer-substring-no-properties eieio-oref content end magit-git-dir "BISECT_CMD_OUTPUT" generate-new-buffer " *temp file*" make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] write-region nil magit-refresh message "Bisecting...done"] 12 "\n\n(fn PROCESS EVENT)"]] 8 (#$ . 7827)]) (defalias 'magit-bisect-in-progress-p #[0 "\300\301\302!!\207" [file-exists-p magit-git-dir "BISECT_LOG"] 3]) (defalias 'magit-bisect-terms #[0 "\300\301\302!!\207" [magit-file-lines magit-git-dir "BISECT_TERMS"] 3]) #@64 While bisecting, insert section with output from `git bisect'. (defalias 'magit-insert-bisect-output #[0 "\306 \205\325\307\310\311!!\206\312\313\314\315F\316\317\316@\"\203$\211A\262\242\206a\320\321\320\211\211\203\\\211A\262\242\262\262\211\262\203\\\317\"\203O\320\262\203\\\262\262T\262\202*\266\211\262\211\203i\322\202j\323\324!\203t\211\202|\211\236A\206|\325\326\324!\203\213\327\"@\206\214\330\205\226\331\332\"\333\334 \335 &\336\337\340\341\"\211\203\256\211\342=\202\340\n\205\271\343\344!\n\"\211\203\304\345\337\"\202\336\346 \"\211\205\334\347!\203\331\211!\262\211\342=\262\262\262#\210\211\n\206\362 ?\205\362\f\3502\317\351\352\206\211A\262\242\353\354#!\210\211\203\211@\211\355\261\210A\266\202\202\f\210\356\357!\210\360!\210\361\345\362\"\363\"\210\336\364\334 #\365\366\"\367\370\371\345\372\"\"!\367\370\373\345\372\"\"!\203VJ\206i\374!\203aJ\206i\374!\205i\211J\212\345\362\"b\210`W\203\240\375`\325\"\206\376`\325\"\204\231\377`\325\n$\210\203\231\377`\366$\210\211b\266\202q)\266\211\f=\203\265\320@\201A!)\202\316\336\345\201B\"\201C\345\211\201B\"\201C\"C\244#0\210+\266\355c\207" [magit--section-type-alist magit-insert-section--parent magit-insert-section--oldroot magit-section-initial-visibility-alist magit-root-section magit-insert-section--current magit-bisect-in-progress-p magit-file-lines magit-git-dir "BISECT_CMD_OUTPUT" "Bisecting: (no saved bisect output)" "It appears you have invoked `git bisect' from a shell." "There is nothing wrong with that, we just cannot display" "anything useful here. Consult the shell output instead." "^\\([a-z0-9]\\{40\\}\\) is the first bad commit$" string-match nil 0 commit bisect-output class-p magit-section :type rassq :value match-string 1 :start point-marker :parent eieio-oset hidden run-hook-with-args-until-success magit-section-set-visibility-hook hide magit-get-section magit-section-ident eieio-oref magit-section-match-assoc functionp cancel-section magit-insert-heading propertize font-lock-face magit-section-heading "\n" run-hooks magit-insert-section-hook magit-insert-child-count set-marker-insertion-type start t end eieio-oref-default keymap intern format "magit-%s-section-map" type "forge-%s-section-map" boundp next-single-property-change get-text-property put-text-property magit-section-cache-visibility magit-section-show parent children] 16 (#$ . 9241)]) #@63 While bisecting, insert section visualizing the bisect state. (defalias 'magit-insert-bisect-rest #[0 "\306 \205O\307\310!\203\310\202\310\236A\206\311\312\307\310!\203&\313\310\"@\206'\310\314\315\316\317 \320 &\321\322\323\324\"\211\203A\211\325=\202s\n\205L\326\327!\n\"\211\203W\330\322\"\202q\331 \"\211\205o\332!\203l\211!\262\211\325=\262\262\262#\210\211\n\206\205 ?\205\205\f\3332J\334\335!\210\336\337\340\341\"\342\343\344\345\346\347>\205\241\350&\210\351\352!\210\353!\210\354\330\355\"\356\"\210\321\357\317 #\360\361\"\362\363\364\330\365\"\"!\362\363\366\330\365\"\"!\203\333J\206\356\367!\203\346J\206\356\367!\205\356\211J\212\330\355\"b\210`W\203%\370`\311\"\206\371`\311\"\204\372`\311\n$\210\203\372`\361$\210\211b\266\202\366)\266\211\f=\2038\315?\373!)\202I\321\330\374\"\375\330\211\374\"\375\"C\244#0\210+\211\262\207" [magit--section-type-alist magit-insert-section--parent magit-insert-section--oldroot magit-section-initial-visibility-alist magit-root-section magit-insert-section--current magit-bisect-in-progress-p class-p bisect-view magit-section :type rassq :value nil :start point-marker :parent eieio-oset hidden run-hook-with-args-until-success magit-section-set-visibility-hook hide magit-get-section magit-section-ident eieio-oref magit-section-match-assoc functionp cancel-section magit-insert-heading "Bisect Rest:" magit-git-wash apply-partially magit-log-wash-log bisect-vis "bisect" "visualize" "git" "log" "--format=%h%x00%D%x00%s" "--decorate=full" "--graph" run-hooks magit-insert-section-hook magit-insert-child-count set-marker-insertion-type start t end eieio-oref-default keymap intern format "magit-%s-section-map" type "forge-%s-section-map" boundp next-single-property-change get-text-property put-text-property magit-section-show parent children magit-bisect-show-graph magit-section-cache-visibility] 12 (#$ . 11750)]) #@58 While bisecting, insert section logging bisect progress. (defalias 'magit-insert-bisect-log #[0 "\306 \205D\307\310!\203\310\202\310\236A\206\311\312\307\310!\203&\313\310\"@\206'\310\314\315\316\317 \320 &\321\322\323\324\"\211\203A\211\325=\202s\n\205L\326\327!\n\"\211\203W\330\322\"\202q\331 \"\211\205o\332!\203l\211!\262\211\325=\262\262\262#\210\211\n\206\205 ?\205\205\f\3332?\334\335!\210\336\337\340\341#\210\342c\210\343\344!\210\345!\210\346\330\347\"\350\"\210\321\351\317 #\352\353\"\354\355\356\330\357\"\"!\354\355\360\330\357\"\"!\203\320J\206\343\361!\203\333J\206\343\361!\205\343\211J\212\330\347\"b\210`W\203\362`\311\"\206\371\363`\311\"\204\364`\311\n$\210\203\364`\353$\210\211b\266\202\353)\266\211\f=\203-\3158\365!)\202>\321\330\366\"\367\330\211\366\"\367\"C\244#0\210+\211\262\207" [magit--section-type-alist magit-insert-section--parent magit-insert-section--oldroot magit-section-initial-visibility-alist magit-root-section magit-insert-section--current magit-bisect-in-progress-p class-p bisect-log magit-section :type rassq :value nil :start point-marker :parent eieio-oset hidden run-hook-with-args-until-success magit-section-set-visibility-hook hide magit-get-section magit-section-ident eieio-oref magit-section-match-assoc functionp cancel-section magit-insert-heading "Bisect Log:" magit-git-wash magit-wash-bisect-log "bisect" "log" 10 run-hooks magit-insert-section-hook magit-insert-child-count set-marker-insertion-type start t end eieio-oref-default keymap intern format "magit-%s-section-map" type "forge-%s-section-map" boundp next-single-property-change get-text-property put-text-property magit-section-show parent children magit-section-cache-visibility] 12 (#$ . 13720)]) #@13 (fn ARGS) (defalias 'magit-wash-bisect-log #[257 "\306\307 \262\310\311\306\312#\203k\313\314\306\"\315 \210\214`}\210eb\210\316\317!\203&\317\202.\317\236A\206.\320\321\316\317!\203=\322\317\"@\206>\317\323\324\307 \325 &\326\327\330\331\"\211\203X\211\332=\202\216\n\205c\333\334!\n\"\211\203n\335\327\"\202\214\336 \"\211\203\211\337!\203\203\211!\262\211\332=\202\212\312\262\262\262#\210\211\n\206\240 ?\205\240\f\3402c\341\342\343#c\210\344 \210\345\346\347\350\351 #!\210\352c\210\353\354!\210\355!\210\356\335\357\"\312\"\210\326\360\307 #\361\362\"\363\364\365\335\366\"\"!\363\364\367\335\366\"\"!\203\364J\206\370!\203\377J\206\370!\205\211J\212\335\357\"b\210`W\203>\371`\320\"\206\372`\320\"\2047\373`\320\n$\210\2037\373`\362$\210\211b\266\202)\266\211\f=\203Q\306@\374!)\202b\326\335\375\"\376\335\211\375\"\376\"C\244#0\210+\210)\210\202\310\377\306\312#\205\265\313\314\306\"\315 \210\316\317!\203\204\317\202\214\317\236A\206\214\320\321\316\317!\203\233\322\317\"@\206\234\317\323\306\324\307 \325 &\326\327\330\331\"\211\203\266\211\332=\202\350\n\205\301\333\334!\n\"\211\203\314\335\327\"\202\346\336 \"\211\205\344\337!\203\341\211!\262\211\332=\262\262\262#\210\211\n\206\372 ?\205\372\f\3402\256\201A\261\210\353\354!\210\355!\210\356\335\357\"\312\"\210\326\360\307 #\361\362\"\363\364\365\335\366\"\"!\363\364\367\335\366\"\"!\203?J\206R\370!\203JJ\206R\370!\205R\211J\212\335\357\"b\210`W\203\211\371`\320\"\206h\372`\320\"\204\202\373`\320\n$\210\203\202\373`\362$\210\211b\266\202Z)\266\211\f=\203\234\306@\374!)\202\255\326\335\375\"\376\335\211\375\"\376\"C\244#0\210+\211\262\262\207" [magit--section-type-alist magit-insert-section--parent magit-insert-section--oldroot magit-section-initial-visibility-alist magit-root-section magit-insert-section--current nil point-marker re-search-forward "^\\(git bisect [^\n]+\n\\)" t match-string 1 magit-delete-match class-p bisect-item magit-section :type rassq :value :start :parent eieio-oset hidden run-hook-with-args-until-success magit-section-set-visibility-hook hide magit-get-section magit-section-ident eieio-oref magit-section-match-assoc functionp cancel-section propertize font-lock-face magit-section-secondary-heading magit-insert-heading magit-wash-sequence apply-partially magit-log-wash-rev bisect-log magit-abbrev-length 10 run-hooks magit-insert-section-hook magit-insert-child-count set-marker-insertion-type start end eieio-oref-default keymap intern format "magit-%s-section-map" type "forge-%s-section-map" boundp next-single-property-change get-text-property put-text-property magit-section-show parent children "# first bad commit: \\[\\([a-z0-9]\\{40\\}\\)\\] [^\n]+\n" magit-section-cache-visibility " is the first bad commit\n"] 15 (#$ . 15535)]) (provide 'magit-bisect)