;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\311\312\313&\210\314\315\316\317\320DD\321\322\323\312\305\324\325\326\327\330\331& \210\314\332\316\317\333DD\334\322\335\312\305\324\336& \210\314\337\316\317\340DD\341\322\342\312\305\324\336& \207" [require magit ediff smerge-mode custom-declare-group magit-ediff nil "Ediff support for Magit." :link (info-link "(magit)Ediffing") :group magit-extensions custom-declare-variable magit-ediff-quit-hook funcall function #[0 "\300\207" [(magit-ediff-cleanup-auxiliary-buffers magit-ediff-restore-previous-winconf)] 1] "Hooks to run after finishing Ediff, when that was invoked using Magit.\nThe hooks are run in the Ediff control buffer. This is similar\nto `ediff-quit-hook' but takes the needs of Magit into account.\nThe `ediff-quit-hook' is ignored by Ediff sessions which were\ninvoked using Magit." :package-version (magit . "2.2.0") :type hook :get magit-hook-custom-get :options (magit-ediff-cleanup-auxiliary-buffers magit-ediff-restore-previous-winconf) magit-ediff-dwim-show-on-hunks #[0 "\300\207" [nil] 1] "Whether `magit-ediff-dwim' runs show variants on hunks.\nIf non-nil, `magit-ediff-show-staged' or\n`magit-ediff-show-unstaged' are called based on what section the\nhunk is in. Otherwise, `magit-ediff-dwim' runs\n`magit-ediff-stage' when point is on an uncommitted hunk." (magit . "2.2.0") boolean magit-ediff-show-stash-with-index #[0 "\300\207" [t] 1] "Whether `magit-ediff-show-stash' shows the state of the index.\n\nIf non-nil, use a third Ediff buffer to distinguish which changes\nin the stash were staged. In cases where the stash contains no\nstaged changes, fall back to a two-buffer Ediff.\n\nMore specifically, a stash is a merge commit, stash@{N}, with\npotentially three parents.\n\n* stash@{N}^1 represents the `HEAD' commit at the time the stash\n was created.\n\n* stash@{N}^2 records any changes that were staged when the stash\n was made.\n\n* stash@{N}^3, if it exists, contains files that were untracked\n when stashing.\n\nIf this option is non-nil, `magit-ediff-show-stash' will run\nEdiff on a file using three buffers: one for stash@{N}, another\nfor stash@{N}^1, and a third for stash@{N}^2.\n\nOtherwise, Ediff uses two buffers, comparing\nstash@{N}^1..stash@{N}. Along with any unstaged changes, changes\nin the index commit, stash@{N}^2, will be shown in this\ncomparison unless they conflicted with changes in the working\ntree at the time of stashing." (magit . "2.6.0")] 14) (defvar magit-ediff-previous-winconf nil) (defalias 'magit-ediff #[0 "\300\301!\207" [transient-setup magit-ediff] 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-ediff interactive-only t function-documentation "Show differences using the Ediff package." transient--prefix transient-prefix :command :info-manual "(ediff)" transient--layout ([1 transient-columns (:description "Ediff") ([1 transient-column nil ((1 transient-suffix (:key "E" :description "Dwim" :command magit-ediff-dwim)) (1 transient-suffix (:key "s" :description "Stage" :command magit-ediff-stage)) (1 transient-suffix (:key "m" :description "Resolve" :command magit-ediff-resolve)))] [1 transient-column nil ((1 transient-suffix (:key "u" :description "Show unstaged" :command magit-ediff-show-unstaged)) (1 transient-suffix (:key "i" :description "Show staged" :command magit-ediff-show-staged)) (1 transient-suffix (:key "w" :description "Show worktree" :command magit-ediff-show-working-tree)))] [1 transient-column nil ((1 transient-suffix (:key "c" :description "Show commit" :command magit-ediff-show-commit)) (1 transient-suffix (:key "r" :description "Show range" :command magit-ediff-compare)) (1 transient-suffix (:key "z" :description "Show stash" :command magit-ediff-show-stash)))])])] 8) #@279 Resolve outstanding conflicts in FILE using Ediff. FILE has to be relative to the top directory of the repository. In the rare event that you want to manually resolve all conflicts, including those already resolved by Git, use `ediff-merge-revisions-with-ancestor'. (fn FILE) (defalias 'magit-ediff-resolve #[257 "\302 \211\203\211r\303!q\210\304 \210\305\301!\210\306\211*\207\307 \207" [default-directory ediff-quit-hook magit-toplevel find-file-noselect smerge-ediff make-local-variable #[0 " r\211q\210\306\307\310\n\"!\203\311 \210\312!\210\313 \210)\266\314 !\203&\315 !\210\314\f!\2030\315\f!\210\314!\203:\315!\210\314 !\203D\315 !\210\316\317!)\207" [ediff-buffer-C smerge-ediff-buf buffer-file-name ediff-buffer-A ediff-buffer-B ediff-ancestor-buffer yes-or-no-p format "Conflict resolution finished; save %s? " erase-buffer insert-buffer-substring save-buffer buffer-live-p kill-buffer run-hooks magit-ediff-quit-hook smerge-ediff-windows magit-ediff-previous-winconf] 6] magit--not-inside-repository-error] 4 (#$ . 3959) (byte-code "\300 \301 \211\204\f\302\303!\210\304\305\306\307\306\211\235@&C\207" [magit-current-file magit-unmerged-files user-error "There are no unresolved conflicts" magit-completing-read "Resolve file" nil t] 11)]) #@123 Stage and unstage changes to FILE using Ediff. FILE has to be relative to the top directory of the repository. (fn FILE) (defalias 'magit-ediff-stage #[257 "\304 \211\203\207\211\305 \306\307\"\306\310\"\211\205r\211q\210 )?\311!\211\206)\312!r\211q\210\n)\313\206:\314\307\n\"r\315\n\316\"q\210\317p)\320\317\321\322\320\317\323\324\325?\205W\326\203f?\205g\327\202g\330?\205n\331\332\333DC\334BBC$BBBBEEC\313%)\266\206)\207\335 \207" [default-directory buffer-read-only buffer-file-coding-system coding-system-for-read magit-toplevel current-window-configuration magit-get-revision-buffer "HEAD" "{index}" get-file-buffer find-file-noselect ediff-buffers3 magit-find-file-noselect magit-find-file-index-noselect t nil lambda setq-local ediff-quit-hook (and (buffer-live-p ediff-buffer-B) (buffer-modified-p ediff-buffer-B) (with-current-buffer ediff-buffer-B (magit-update-index))) (and (buffer-live-p ediff-buffer-C) (buffer-modified-p ediff-buffer-C) (with-current-buffer ediff-buffer-C (when (y-or-n-p (format "Save file %s? " buffer-file-name)) (save-buffer)))) append ((ediff-kill-buffer-carefully ediff-buffer-A)) ((with-current-buffer ediff-buffer-B (setq buffer-read-only t))) ((ediff-kill-buffer-carefully ediff-buffer-B)) ((ediff-kill-buffer-carefully ediff-buffer-C)) let magit-ediff-previous-winconf ((run-hooks 'magit-ediff-quit-hook)) magit--not-inside-repository-error] 27 (#$ . 5248) (byte-code "\300 \301\302\303\304\303\211\305 \235@&C\207" [magit-tracked-files magit-completing-read "Selectively stage file" nil t magit-current-file] 10)]) #@487 Compare REVA:FILEA with REVB:FILEB using Ediff. FILEA and FILEB have to be relative to the top directory of the repository. If REVA or REVB is nil, then this stands for the working tree state. If the region is active, use the revisions on the first and last line of the region. With a prefix argument, instead of diffing the revisions, choose a revision to view changes along, starting at the common ancestor of both revisions (i.e., use a "..." range). (fn REVA REVB FILEA FILEB) (defalias 'magit-ediff-compare #[1028 "\301 \211\203\200\211\302 \203\303\"\202\304!\203%\303\"\202(\304!\305\206?\203;\306 \"\202?\307!\206U\203Q\306 \"\202U\307!\310\311\312\313\310\311\314 ?\205c\315 ?\205j\316\317\320DC\321BBC#BBEEC\322$\266\203)\207\323 \207" [default-directory magit-toplevel current-window-configuration magit-get-revision-buffer get-file-buffer ediff-buffers magit-find-file-noselect find-file-noselect lambda nil setq-local ediff-quit-hook append ((ediff-kill-buffer-carefully ediff-buffer-A)) ((ediff-kill-buffer-carefully ediff-buffer-B)) let magit-ediff-previous-winconf ((run-hooks 'magit-ediff-quit-hook)) ediff-revision magit--not-inside-repository-error] 23 (#$ . 6854) (byte-code "\301\302\"\211\242\243\211\242\243D\303\"\244\207" [current-prefix-arg magit-ediff-compare--read-revisions nil magit-ediff-read-files] 11)]) #@28 (fn &optional ARG MBASE) (defalias 'magit-ediff-compare--read-revisions #[512 "\206 \300\301\302#\303!\211\203\304!\207\302D\207" [magit-diff-read-range-or-commit "Compare range or commit" nil magit-split-range -cons-to-list] 6 (#$ . 8257)]) #@174 Read file in REVB, return it and the corresponding file in REVA. When FILEB is non-nil, use this as REVB's file instead of prompting for it. (fn REVA REVB &optional FILEB) (defalias 'magit-ediff-read-files #[770 "\211\204 \300\301\302\206 \303#\304\"\301\305\206\303##\262\211\306!\235@\206N\307\310\"\"A\206N\300\301\311\206@\303$\304\"\301\312##D\207" [magit-read-file-choice format "File to compare between %s and %s" "the working tree" magit-changed-files "No changed files between %s and %s" magit-revision-files assoc magit-renamed-files "File in %s to compare with %s in %s" "No files have changed between %s and %s"] 10 (#$ . 8516)]) #@483 Compare, stage, or resolve using Ediff. This command tries to guess what file, and what commit or range the user wants to compare, stage, or resolve using Ediff. It might only be able to guess either the file, or range or commit, in which case the user is asked about the other. It might not always guess right, in which case the appropriate `magit-ediff-*' command has to be used explicitly. If it cannot read the user's mind at all, then it asks the user for a command to run. (defalias 'magit-ediff-dwim #[0 "\301 \211\203\302\303\"\203\212\304\211\305\"\306\"b\210\307 )\207\310 \311 \312C\312C\312C\313\314\315\316\204\242\317>\203F\320 \203?\321\202@\322\240\266\202:\203\200\242\211\323\267\202s \243 #\266\202 \243 #\266\202#\266\202;\203\225\211 $\266\202#\266\202\324\267\202\273\325\240\266\202\326\240\266\202:\203\365\242\211\327\267\202\350 \243 #\266\202 \243 #\266\202#\266\202;\203\n\211 $\266\202#\266\242\204H\330\331\332\333\334\335\336\337\340F\341#\342Q\343\"\211\344\267\202?\345\202@\346\202@\322\202@\321\202@\312\262\347\350!\210!\207\242\346=\203a\351\346\242\242\352\242\242\n#$\207\242\345=\203m\345\242!\207\242\353=\203y\353\242!\207\203\202\242!\207\330\242!\207" [magit-ediff-dwim-show-on-hunks magit-current-section magit-section-match-1 hunk eieio-oref parent start magit-ediff-dwim magit-diff--dwim magit-current-file nil #[771 "\300\240\210\240\207" [magit-ediff-show-commit] 5 "\n\n(fn COMMAND REVB VALUE)"] #[771 "\300\240\210\240\207" [magit-ediff-show-stash] 5 "\n\n(fn COMMAND REVB VALUE)"] #[771 "\302\303!\205R\304 \211\305=\203+\306!\211\242\243\211\242\243 \240\210\240\266\206\262\202P \2045\307\240\202P\211\310\267\202M\311\240\202P\312\240\202P\313\240\202P\313\240\262\207" [magit-buffer-range magit-ediff-dwim-show-on-hunks derived-mode-p magit-diff-mode magit-diff-type committed magit-ediff-compare--read-revisions magit-ediff-stage #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (unstaged 59 staged 65 undefined 71)) magit-ediff-show-unstaged magit-ediff-show-staged nil] 13 "\n\n(fn COMMAND REVA REVB)"] #[1028 "\300!\211\242\243\211\242\243 \301\240\210\240\210\240\207" [magit-ediff-compare--read-revisions magit-ediff-compare] 13 "\n\n(fn RANGE COMMAND REVA REVB)"] (staged unstaged) magit-anything-unmerged-p magit-ediff-resolve magit-ediff-stage #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (commit 85 stash 100)) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (unstaged 169 staged 178)) magit-ediff-show-unstaged magit-ediff-show-staged #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (commit 202 stash 217)) call-interactively read-char-choice "Failed to read your mind; do you want to " mapconcat identity "[c]ommit" "[r]ange" "[s]tage" "resol[v]e" ", " ", or [C-g] to abort " (99 114 115 118) #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (99 303 114 307 115 311 118 315)) magit-ediff-show-commit magit-ediff-compare message "" apply magit-ediff-read-files magit-ediff-show-stash] 16 (#$ . 9199) nil]) #@227 Show staged changes using Ediff. This only allows looking at the changes; to stage, unstage, and discard changes using Ediff, use `magit-ediff-stage'. FILE must be relative to the top directory of the repository. (fn FILE) (defalias 'magit-ediff-show-staged #[257 "\300 \301\302\"\303\304P!\305\206\306\302\"\206\307\310\"\311\312\313\314\311\312\315 ?\205,\316 ?\2053\317\320\321DC\322BBC#BBEEC\305$\207" [current-window-configuration magit-get-revision-buffer "HEAD" get-buffer ".~{index}~" ediff-buffers magit-find-file-noselect magit-find-file-index-noselect t lambda nil setq-local ediff-quit-hook append ((ediff-kill-buffer-carefully ediff-buffer-A)) ((ediff-kill-buffer-carefully ediff-buffer-B)) let magit-ediff-previous-winconf ((run-hooks 'magit-ediff-quit-hook))] 19 (#$ . 12583) (byte-code "\300\301\302 \303#C\207" [magit-read-file-choice "Show staged changes for file" magit-staged-files "No staged files"] 4)]) #@229 Show unstaged changes using Ediff. This only allows looking at the changes; to stage, unstage, and discard changes using Ediff, use `magit-ediff-stage'. FILE must be relative to the top directory of the repository. (fn FILE) (defalias 'magit-ediff-show-unstaged #[257 "\301 \211\203O\211\302 \303\304P!\305!\306\206\307\310\"\206$\311!\312\313\314\315\312\313\316 ?\2052\317 ?\2059\320\321\322DC\323BBC#BBEEC\306$\266\203)\207\324 \207" [default-directory magit-toplevel current-window-configuration get-buffer ".~{index}~" get-file-buffer ediff-buffers magit-find-file-index-noselect t find-file-noselect lambda nil setq-local ediff-quit-hook append ((ediff-kill-buffer-carefully ediff-buffer-A)) ((ediff-kill-buffer-carefully ediff-buffer-B)) let magit-ediff-previous-winconf ((run-hooks 'magit-ediff-quit-hook)) magit--not-inside-repository-error] 20 (#$ . 13537) (byte-code "\300\301\302 \303#C\207" [magit-read-file-choice "Show unstaged changes for file" magit-unstaged-files "No unstaged files"] 4)]) #@132 Show changes between `HEAD' and working tree using Ediff. FILE must be relative to the top directory of the repository. (fn FILE) (defalias 'magit-ediff-show-working-tree #[257 "\301 \211\203N\211\302 \303\304\"\305!\306\206\307\304\"\206#\310!\311\312\313\314\311\312\315 ?\2051\316 ?\2058\317\320\321DC\322BBC#BBEEC\306$\266\203)\207\323 \207" [default-directory magit-toplevel current-window-configuration magit-get-revision-buffer "HEAD" get-file-buffer ediff-buffers magit-find-file-noselect find-file-noselect lambda nil setq-local ediff-quit-hook append ((ediff-kill-buffer-carefully ediff-buffer-A)) ((ediff-kill-buffer-carefully ediff-buffer-B)) let magit-ediff-previous-winconf ((run-hooks 'magit-ediff-quit-hook)) magit--not-inside-repository-error] 20 (#$ . 14574) (byte-code "\300\301\302\303!\304#C\207" [magit-read-file-choice "Show changes in file" magit-changed-files "HEAD" "No changed files"] 4)]) #@61 Show changes introduced by COMMIT using Ediff. (fn COMMIT) (defalias 'magit-ediff-show-commit #[257 "\211\300P\301\302\303\304 #$\207" ["^" apply magit-ediff-compare magit-ediff-read-files magit-current-file] 11 (#$ . 15517) (byte-code "\300\301!C\207" [magit-read-branch-or-commit "Revision"] 2)]) #@204 Show changes introduced by STASH using Ediff. `magit-ediff-show-stash-with-index' controls whether a three-buffer Ediff is used in order to distinguish changes in the stash that were staged. (fn STASH) (defalias 'magit-ediff-show-stash #[257 "\211\301P\302P\303\"\211\242\243\211\242\243\211\203\205\304  \"\235\203\205\305 \306\f\"\306\f\"\306\f\"\307\206B\310 \"\206L\310\"\206V\310\n\"\311\312\313\314\311\312\315 ?\205d\316 ?\205k\317 ?\205r\320\321\322DC\323BBC$BBEEC\307%\207\324 \n$\207" [magit-ediff-show-stash-with-index "^1" "^2" magit-ediff-read-files magit-changed-files current-window-configuration magit-get-revision-buffer ediff-buffers3 magit-find-file-noselect lambda nil setq-local ediff-quit-hook append ((ediff-kill-buffer-carefully ediff-buffer-A)) ((ediff-kill-buffer-carefully ediff-buffer-B)) ((ediff-kill-buffer-carefully ediff-buffer-C)) let magit-ediff-previous-winconf ((run-hooks 'magit-ediff-quit-hook)) magit-ediff-compare] 33 (#$ . 15831) (byte-code "\300\301!C\207" [magit-read-stash "Stash"] 2)]) (defalias 'magit-ediff-cleanup-auxiliary-buffers #[0 "\306! \307\n!\203\310\n!\202\307 !\205\310 !\f\211\211\205+\311!\205+\312\311!!\262\2055\313\311!!\266 \211\211\205H\311!\205H\312\311!!\262\205R\313\311!!\266\211\211\205f\311!\205f\312\311!!\262\205p\313\311!!\266\211\211\205\204\311!\205\204\312\311!!\262\205\216\313\311!!\266\211\211\205\242\311!\205\242\312\311!!\262\205\254\313\311!!\266\211\211\205\300\311!\205\300\312\311!!\262\205\312\313\311!!\266\211\211\205\336\311!\205\336\312\311!!\262\205\350\313\311!!\266\314\315!\203 \211\211\205\311!\205\312\311!!\262\205\f\313\311!!\266\316 \203 \317!\203 \320!\210\202*\307!\203*\321!\210\211\211\205;\311!\205;\312\311!!\262\205E\313\311!!\266\317!\205P\322!\207" [ediff-control-buffer ediff-control-frame ediff-window-A ediff-window-B ediff-diff-buffer ediff-custom-diff-buffer ediff-get-visible-buffer-window window-live-p window-frame get-buffer buffer-name kill-buffer boundp ediff-patch-diagnostics ediff-window-display-p frame-live-p delete-frame delete-window select-frame ediff-fine-diff-buffer ediff-tmp-buffer ediff-error-buffer ediff-msg-buffer ediff-debug-buffer] 9]) (defalias 'magit-ediff-restore-previous-winconf #[0 "\301!\207" [magit-ediff-previous-winconf set-window-configuration] 2]) (provide 'magit-ediff)