From c8b65a3b7636cd964fa596a77f2bb0fb03af1577 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Thu, 23 Nov 2023 19:29:26 +0100 Subject: [PATCH] update magit Signed-off-by: Andreas Gerler --- .../AUTHORS.md | 9 +- .../LICENSE | 0 .../dir | 0 .../git-rebase.el | 6 +- .../magit-apply.el | 88 +- .../magit-autoloads.el | 140 +- .../magit-autorevert.el | 0 .../magit-base.el | 12 +- .../magit-bisect.el | 0 .../magit-blame.el | 0 .../magit-bookmark.el | 0 .../magit-branch.el | 33 +- .../magit-bundle.el | 0 .../magit-clone.el | 2 +- .../magit-commit.el | 2 +- .../magit-core.el | 0 .../magit-diff.el | 25 +- .../magit-ediff.el | 0 .../magit-extras.el | 16 +- .../magit-fetch.el | 0 .../magit-files.el | 75 +- .../magit-git.el | 63 +- .../magit-gitignore.el | 0 .../magit-log.el | 4 +- .../magit-margin.el | 2 +- .../magit-merge.el | 0 .../magit-mode.el | 14 +- .../magit-notes.el | 0 .../magit-patch.el | 0 .../magit-pkg.el | 4 +- .../magit-process.el | 4 +- .../magit-pull.el | 0 .../magit-push.el | 0 .../magit-reflog.el | 0 .../magit-refs.el | 0 .../magit-remote.el | 0 .../magit-repos.el | 10 +- .../magit-reset.el | 0 .../magit-sequence.el | 2 +- .../magit-sparse-checkout.el | 0 .../magit-stash.el | 15 +- .../magit-status.el | 0 .../magit-submodule.el | 4 +- .../magit-subtree.el | 0 .../magit-tag.el | 0 .../magit-transient.el | 0 .../magit-wip.el | 2 +- .../magit-worktree.el | 2 +- .../magit.el | 174 ++- .../magit.info | 1225 ++++++++++------- .../dir | 0 .../magit-section-autoloads.el | 0 .../magit-section-pkg.el | 4 +- .../magit-section.el | 4 +- .../magit-section.info | 2 +- 55 files changed, 1158 insertions(+), 785 deletions(-) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/AUTHORS.md (97%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/LICENSE (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/dir (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/git-rebase.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-apply.el (93%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-autoloads.el (95%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-autorevert.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-base.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-bisect.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-blame.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-bookmark.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-branch.el (97%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-bundle.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-clone.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-commit.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-core.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-diff.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-ediff.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-extras.el (98%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-fetch.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-files.el (92%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-git.el (98%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-gitignore.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-log.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-margin.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-merge.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-mode.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-notes.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-patch.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-pkg.el (78%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-process.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-pull.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-push.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-reflog.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-refs.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-remote.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-repos.el (98%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-reset.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-sequence.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-sparse-checkout.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-stash.el (97%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-status.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-submodule.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-subtree.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-tag.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-transient.el (100%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-wip.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit-worktree.el (99%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit.el (84%) rename elpa/{magit-20230502.1321 => magit-20230718.2010}/magit.info (93%) rename elpa/{magit-section-20230428.1518 => magit-section-20230521.1803}/dir (100%) rename elpa/{magit-section-20230428.1518 => magit-section-20230521.1803}/magit-section-autoloads.el (100%) rename elpa/{magit-section-20230428.1518 => magit-section-20230521.1803}/magit-section-pkg.el (70%) rename elpa/{magit-section-20230428.1518 => magit-section-20230521.1803}/magit-section.el (99%) rename elpa/{magit-section-20230428.1518 => magit-section-20230521.1803}/magit-section.info (99%) diff --git a/elpa/magit-20230502.1321/AUTHORS.md b/elpa/magit-20230718.2010/AUTHORS.md similarity index 97% rename from elpa/magit-20230502.1321/AUTHORS.md rename to elpa/magit-20230718.2010/AUTHORS.md index cfa742de..db6888d2 100644 --- a/elpa/magit-20230502.1321/AUTHORS.md +++ b/elpa/magit-20230718.2010/AUTHORS.md @@ -1,7 +1,4 @@ -The following people have contributed to Magit, including the -libraries `git-commit.el`, `magit-popup.el`, and `with-editor.el` -which are distributed as separate Elpa packages. - +The following people have contributed to Magit. For statistics see https://magit.vc/stats/magit/authors.html. Authors @@ -248,6 +245,7 @@ All Contributors - Mark Hepburn - Mark Karpov - Mark Oteiza +- Markus Beppler - Martin Joerg - Martin Polden - Matthew Fluet @@ -308,6 +306,7 @@ All Contributors - rabio - Radon Rosborough - Rafael Laboissiere +- Rahul Rameshbabu - Raimon Grau - Ramkumar Ramachandra - Remco van 't Veer @@ -339,6 +338,7 @@ All Contributors - Sergey Pashinin - Sergey Vinokurov - Servilio Afre Puentes +- shoefone - Shuguang Sun - Siavash Askari Nasr - Silent Sphere @@ -398,4 +398,5 @@ All Contributors - Zach Latta - zakora - Zhu Zihao +- ziggy - zilongshanren diff --git a/elpa/magit-20230502.1321/LICENSE b/elpa/magit-20230718.2010/LICENSE similarity index 100% rename from elpa/magit-20230502.1321/LICENSE rename to elpa/magit-20230718.2010/LICENSE diff --git a/elpa/magit-20230502.1321/dir b/elpa/magit-20230718.2010/dir similarity index 100% rename from elpa/magit-20230502.1321/dir rename to elpa/magit-20230718.2010/dir diff --git a/elpa/magit-20230502.1321/git-rebase.el b/elpa/magit-20230718.2010/git-rebase.el similarity index 99% rename from elpa/magit-20230502.1321/git-rebase.el rename to elpa/magit-20230718.2010/git-rebase.el index b3a219d7..40d5a326 100644 --- a/elpa/magit-20230502.1321/git-rebase.el +++ b/elpa/magit-20230718.2010/git-rebase.el @@ -25,7 +25,7 @@ ;; This package assists the user in editing the list of commits to be ;; rewritten during an interactive rebase. -;; When the user initiates an interactive rebase, e.g. using "r e" in +;; When the user initiates an interactive rebase, e.g., using "r e" in ;; a Magit buffer or on the command line using "git rebase -i REV", ;; Git invokes the `$GIT_SEQUENCE_EDITOR' (or if that is undefined ;; `$GIT_EDITOR' or even `$EDITOR') letting the user rearrange, drop, @@ -36,7 +36,7 @@ ;; providing the following commands: ;; ;; C-c C-c Tell Git to make it happen. -;; C-c C-k Tell Git that you changed your mind, i.e. abort. +;; C-c C-k Tell Git that you changed your mind, i.e., abort. ;; ;; p Move point to previous line. ;; n Move point to next line. @@ -199,7 +199,7 @@ (defvar git-rebase-command-descriptions '((with-editor-finish . "tell Git to make it happen") - (with-editor-cancel . "tell Git that you changed your mind, i.e. abort") + (with-editor-cancel . "tell Git that you changed your mind, i.e., abort") (git-rebase-backward-line . "move point to previous line") (forward-line . "move point to next line") (git-rebase-move-line-up . "move the commit at point up") diff --git a/elpa/magit-20230502.1321/magit-apply.el b/elpa/magit-20230718.2010/magit-apply.el similarity index 93% rename from elpa/magit-20230502.1321/magit-apply.el rename to elpa/magit-20230718.2010/magit-apply.el index 62e7dfd8..82f064e9 100644 --- a/elpa/magit-20230502.1321/magit-apply.el +++ b/elpa/magit-20230718.2010/magit-apply.el @@ -298,23 +298,37 @@ at point, stage the file but not its content." (call-interactively #'magit-stage-file))) ;;;###autoload -(defun magit-stage-file (file) - "Stage all changes to FILE. -With a prefix argument or when there is no file at point ask for -the file to be staged. Otherwise stage the file at point without -requiring confirmation." +(defun magit-stage-buffer-file () + "Stage all changes to the file being visited in the current buffer." + (interactive) + (unless buffer-file-name + (user-error "Not visiting a file")) + (magit-with-toplevel + (magit-stage-1 (and (magit-file-ignored-p buffer-file-name) + (if (y-or-n-p "Visited file is ignored; stage anyway?") + "--force" + (user-error "Abort"))) + (list (magit-file-relative-name))))) + +;;;###autoload +(defun magit-stage-file (files) + "Read one or more files and stage all changes in those files. +With a prefix argument offer ignored files for completion." (interactive - (let* ((atpoint (magit-section-value-if 'file)) - (current (magit-file-relative-name)) - (choices (nconc (magit-unstaged-files) - (magit-untracked-files))) - (default (car (member (or atpoint current) choices)))) - (list (if (or current-prefix-arg (not default)) - (magit-completing-read "Stage file" choices - nil t nil nil default) - default)))) + (let* ((choices (if current-prefix-arg + (magit-ignored-files) + (nconc (magit-unstaged-files) + (magit-untracked-files)))) + (default (or (magit-section-value-if 'file) + (magit-file-relative-name))) + (default (car (member default choices)))) + (list (magit-completing-read-multiple + (if current-prefix-arg "Stage ignored file,s: " "Stage file,s: ") + choices nil t nil nil default)))) (magit-with-toplevel - (magit-stage-1 nil (list file)))) + ;; For backward compatibility, and because of + ;; the function's name, don't require a list. + (magit-stage-1 nil (if (listp files) files (list files))))) ;;;###autoload (defun magit-stage-modified (&optional all) @@ -383,7 +397,10 @@ ignored) files." (magit-wip-commit-after-apply files " after stage"))) (defvar magit-post-stage-hook-commands - '(magit-stage magit-stage-file magit-stage-modified)) + '(magit-stage + magit-stage-buffer-file + magit-stage-file + magit-stage-modified)) (defun magit-run-post-stage-hook () (when (memq this-command magit-post-stage-hook-commands) @@ -417,22 +434,28 @@ ignored) files." (`(undefined ,_ ,_) (user-error "Cannot unstage this change"))))) ;;;###autoload -(defun magit-unstage-file (file) - "Unstage all changes to FILE. -With a prefix argument or when there is no file at point ask for -the file to be unstaged. Otherwise unstage the file at point -without requiring confirmation." +(defun magit-unstage-buffer-file () + "Unstage all changes to the file being visited in the current buffer." + (interactive) + (unless buffer-file-name + (user-error "Not visiting a file")) + (magit-with-toplevel + (magit-unstage-1 (list (magit-file-relative-name))))) + +;;;###autoload +(defun magit-unstage-file (files) + "Read one or more files and unstage all changes to those files." (interactive - (let* ((atpoint (magit-section-value-if 'file)) - (current (magit-file-relative-name)) - (choices (magit-staged-files)) - (default (car (member (or atpoint current) choices)))) - (list (if (or current-prefix-arg (not default)) - (magit-completing-read "Unstage file" choices - nil t nil nil default) - default)))) + (let* ((choices (magit-staged-files)) + (default (or (magit-section-value-if 'file) + (magit-file-relative-name))) + (default (car (member default choices)))) + (list (magit-completing-read-multiple "Unstage file,s: " choices + nil t nil nil default)))) (magit-with-toplevel - (magit-unstage-1 (list file)))) + ;; For backward compatibility, and because of + ;; the function's name, don't require a list. + (magit-unstage-1 (if (listp files) files (list files))))) (defun magit-unstage-1 (files) (magit-wip-commit-before-change files " before unstage") @@ -461,7 +484,10 @@ without requiring confirmation." (magit-wip-commit-after-apply nil " after unstage")) (defvar magit-post-unstage-hook-commands - '(magit-unstage magit-unstage-file magit-unstage-all)) + '(magit-unstage + magit-unstage-buffer-file + magit-unstage-file + magit-unstage-all)) (defun magit-run-post-unstage-hook () (when (memq this-command magit-post-unstage-hook-commands) diff --git a/elpa/magit-20230502.1321/magit-autoloads.el b/elpa/magit-20230718.2010/magit-autoloads.el similarity index 95% rename from elpa/magit-20230502.1321/magit-autoloads.el rename to elpa/magit-20230718.2010/magit-autoloads.el index 352a243f..47cba856 100644 --- a/elpa/magit-20230502.1321/magit-autoloads.el +++ b/elpa/magit-20230718.2010/magit-autoloads.el @@ -35,51 +35,58 @@ running \"man git-rebase\" at the command line) for details. ;;;### (autoloads nil "magit" "magit.el" (0 0 0 0)) ;;; Generated autoloads from magit.el -(defvar magit-define-global-key-bindings t "\ -Whether to bind some Magit commands in the global keymap. - -If this variable is non-nil, then the following bindings may -be added to the global keymap. The default is t. - -key binding ---- ------- -C-x g magit-status -C-x M-g magit-dispatch -C-c M-g magit-file-dispatch - -These bindings may be added when `after-init-hook' is run. -Each binding is added if and only if at that time no other key -is bound to the same command and no other command is bound to -the same key. In other words we try to avoid adding bindings -that are unnecessary, as well as bindings that conflict with -other bindings. - -Adding the above bindings is delayed until `after-init-hook' -is called to allow users to set the variable anywhere in their -init file (without having to make sure to do so before `magit' -is loaded or autoloaded) and to increase the likelihood that -all the potentially conflicting user bindings have already -been added. +(defvar magit-define-global-key-bindings 'default "\ +Which set of key bindings to add to the global keymap, if any. + +This option controls which set of Magit key bindings, if any, may +be added to the global keymap, even before Magit is first used in +the current Emacs session. + +If the value is nil, no bindings are added. + +If `default', maybe add: + + C-x g `magit-status' + C-x M-g `magit-dispatch' + C-c M-g `magit-file-dispatch' + +If `recommended', maybe add: + + C-x g `magit-status' + C-c g `magit-dispatch' + C-c f `magit-file-dispatch' + + These bindings are strongly recommended, but we cannot use + them by default, because the \"C-c \" namespace is + strictly reserved for bindings added by the user. + +The bindings in the chosen set may be added when +`after-init-hook' is run. Each binding is added if, and only +if, at that time no other key is bound to the same command, +and no other command is bound to the same key. In other words +we try to avoid adding bindings that are unnecessary, as well +as bindings that conflict with other bindings. + +Adding these bindings is delayed until `after-init-hook' is +run to allow users to set the variable anywhere in their init +file (without having to make sure to do so before `magit' is +loaded or autoloaded) and to increase the likelihood that all +the potentially conflicting user bindings have already been +added. To set this variable use either `setq' or the Custom interface. Do not use the function `customize-set-variable' because doing -that would cause Magit to be loaded immediately when that form +that would cause Magit to be loaded immediately, when that form is evaluated (this differs from `custom-set-variables', which doesn't load the libraries that define the customized variables). -Setting this variable to nil has no effect if that is done after -the key bindings have already been added. - -We recommend that you bind \"C-c g\" instead of \"C-c M-g\" to -`magit-file-dispatch'. The former is a much better binding -but the \"C-c \" namespace is strictly reserved for -users; preventing Magit from using it by default. - -Also see info node `(magit)Commands for Buffers Visiting Files'.") +Setting this variable has no effect if `after-init-hook' has +already been run.") (custom-autoload 'magit-define-global-key-bindings "magit" t) -(defun magit-maybe-define-global-key-bindings (&optional force) (when magit-define-global-key-bindings (let ((map (current-global-map))) (pcase-dolist (`(,key \, def) '(("C-x g" . magit-status) ("C-x M-g" . magit-dispatch) ("C-c M-g" . magit-file-dispatch))) (when (or force (not (or (lookup-key map (kbd key)) (where-is-internal def (make-sparse-keymap) t)))) (define-key map (kbd key) def)))))) +(defun magit-maybe-define-global-key-bindings (&optional force) "\ +See variable `magit-define-global-key-bindings'." (when magit-define-global-key-bindings (let ((map (current-global-map))) (pcase-dolist (`(,key \, def) (cond ((eq magit-define-global-key-bindings 'recommended) '(("C-x g" . magit-status) ("C-c g" . magit-dispatch) ("C-c f" . magit-file-dispatch))) ('(("C-x g" . magit-status) ("C-x M-g" . magit-dispatch) ("C-c M-g" . magit-file-dispatch))))) (when (or force (not (or (lookup-key map (kbd key)) (where-is-internal def (make-sparse-keymap) t)))) (define-key map (kbd key) def)))))) (if after-init-time (magit-maybe-define-global-key-bindings) (add-hook 'after-init-hook #'magit-maybe-define-global-key-bindings t)) (autoload 'magit-dispatch "magit" nil t) @@ -126,10 +133,12 @@ is run in the top-level directory of the current working tree. (autoload 'magit-version "magit" "\ Return the version of Magit currently in use. -If optional argument PRINT-DEST is non-nil, output -stream (interactively, the echo area, or the current buffer with -a prefix argument), also print the used versions of Magit, Git, -and Emacs to it. + +If optional argument PRINT-DEST is non-nil, also print the used +versions of Magit, Transient, Git and Emacs to the output stream +selected by that argument. Interactively use the echo area, or +with a prefix argument use the current buffer. Additionally put +the output in the kill ring. \(fn &optional PRINT-DEST)" t nil) @@ -140,13 +149,14 @@ and Emacs to it. ;;;### (autoloads nil "magit-apply" "magit-apply.el" (0 0 0 0)) ;;; Generated autoloads from magit-apply.el +(autoload 'magit-stage-buffer-file "magit-apply" "\ +Stage all changes to the file being visited in the current buffer." t nil) + (autoload 'magit-stage-file "magit-apply" "\ -Stage all changes to FILE. -With a prefix argument or when there is no file at point ask for -the file to be staged. Otherwise stage the file at point without -requiring confirmation. +Read one or more files and stage all changes in those files. +With a prefix argument offer ignored files for completion. -\(fn FILE)" t nil) +\(fn FILES)" t nil) (autoload 'magit-stage-modified "magit-apply" "\ Stage all changes to files modified in the worktree. @@ -157,13 +167,13 @@ ignored) files. \(fn &optional ALL)" t nil) +(autoload 'magit-unstage-buffer-file "magit-apply" "\ +Unstage all changes to the file being visited in the current buffer." t nil) + (autoload 'magit-unstage-file "magit-apply" "\ -Unstage all changes to FILE. -With a prefix argument or when there is no file at point ask for -the file to be unstaged. Otherwise unstage the file at point -without requiring confirmation. +Read one or more files and unstage all changes to those files. -\(fn FILE)" t nil) +\(fn FILES)" t nil) (autoload 'magit-unstage-all "magit-apply" "\ Remove all changes from the staging area." t nil) @@ -314,16 +324,22 @@ changes. \(fn REVISION &optional ARGS)" t nil) +(function-put 'magit-checkout 'interactive-only 'magit--checkout) + (autoload 'magit-branch-create "magit-branch" "\ Create BRANCH at branch or revision START-POINT. \(fn BRANCH START-POINT)" t nil) +(function-put 'magit-branch-create 'interactive-only 'magit-call-git) + (autoload 'magit-branch-and-checkout "magit-branch" "\ Create and checkout BRANCH at branch or revision START-POINT. \(fn BRANCH START-POINT &optional ARGS)" t nil) +(function-put 'magit-branch-and-checkout 'interactive-only 'magit-call-git) + (autoload 'magit-branch-or-checkout "magit-branch" "\ Hybrid between `magit-checkout' and `magit-branch-and-checkout'. @@ -338,6 +354,8 @@ does. \(fn ARG &optional START-POINT)" t nil) +(function-put 'magit-branch-or-checkout 'interactive-only 'magit-call-git) + (autoload 'magit-branch-checkout "magit-branch" "\ Checkout an existing or new local branch. @@ -364,6 +382,8 @@ when using `magit-branch-and-checkout'. \(fn BRANCH &optional START-POINT)" t nil) +(function-put 'magit-branch-checkout 'interactive-only 'magit-call-git) + (autoload 'magit-branch-orphan "magit-branch" "\ Create and checkout an orphan BRANCH with contents from revision START-POINT. @@ -647,7 +667,7 @@ The current time is used as the initial minibuffer input and the original author or committer date is available as the previous history element. -Both the author and the committer dates are changes, unless one +Both the author and the committer dates are changed, unless one of the following is true, in which case only the committer date is updated: - You are not the author of the commit that is being reshelved. @@ -1050,8 +1070,8 @@ stack. When reading the revision from the minibuffer, then it might not be possible to guess the correct repository. When this command -is called inside a repository (e.g. while composing a commit -message), then that repository is used. Otherwise (e.g. while +is called inside a repository (e.g., while composing a commit +message), then that repository is used. Otherwise (e.g., while composing an email) then the repository recorded for the top element of the stack is used (even though we insert another revision). If not called inside a repository and with an empty @@ -1748,7 +1768,7 @@ refspec. (autoload 'magit-list-repositories "magit-repos" "\ Display a list of repositories. -Use the options `magit-repository-directories' to control which +Use the option `magit-repository-directories' to control which repositories are displayed." t nil) (register-definition-prefixes "magit-repos" '("magit-")) @@ -2102,14 +2122,16 @@ Remove all stashes saved in REF's reflog by deleting REF. \(fn REF)" t nil) (autoload 'magit-stash-branch "magit-stash" "\ -Create and checkout a new BRANCH from STASH. +Create and checkout a new BRANCH from an existing STASH. +The new branch starts at the commit that was current when the +stash was created. If the stash applies cleanly, then drop it. \(fn STASH BRANCH)" t nil) (autoload 'magit-stash-branch-here "magit-stash" "\ -Create and checkout a new BRANCH and apply STASH. -The branch is created using `magit-branch-and-checkout', using the -current branch or `HEAD' as the start-point. +Create and checkout a new BRANCH from an existing STASH. +Use the current branch or `HEAD' as the starting-point of BRANCH. +Then apply STASH, dropping it if it applies cleanly. \(fn STASH BRANCH)" t nil) @@ -2414,7 +2436,7 @@ evaluate `(default-value \\='magit-wip-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. -Whenever appropriate (i.e. when dataloss would be a possibility +Whenever appropriate (i.e., when dataloss would be a possibility otherwise) this mode causes uncommitted changes to be committed to dedicated work-in-progress refs. diff --git a/elpa/magit-20230502.1321/magit-autorevert.el b/elpa/magit-20230718.2010/magit-autorevert.el similarity index 100% rename from elpa/magit-20230502.1321/magit-autorevert.el rename to elpa/magit-20230718.2010/magit-autorevert.el diff --git a/elpa/magit-20230502.1321/magit-base.el b/elpa/magit-20230718.2010/magit-base.el similarity index 99% rename from elpa/magit-20230502.1321/magit-base.el rename to elpa/magit-20230718.2010/magit-base.el index 9549c882..c750d862 100644 --- a/elpa/magit-20230502.1321/magit-base.el +++ b/elpa/magit-20230718.2010/magit-base.el @@ -183,7 +183,7 @@ so we don't use the command names but more generic symbols. Applying changes: - `discard' Discarding one or more changes (i.e. hunks or the + `discard' Discarding one or more changes (i.e., hunks or the complete diff for a file) loses that change, obviously. `reverse' Reverting one or more changes can usually be undone @@ -387,15 +387,15 @@ Messages which can currently be suppressed using this option are: (defcustom magit-verbose-messages nil "Whether to make certain prompts and messages more verbose. -Occationally a user suggests that a certain prompt or message -should be more verbose, but I would refer to keep it as-is +Occasionally a user suggests that a certain prompt or message +should be more verbose, but I would prefer to keep it as-is because I don't think that the fact that that one user did not understand the existing prompt/message means that a large number of users would have the same difficulty, and that making it more -verbose would actually do a disservice to user who understand +verbose would actually do a disservice to users who understand the shorter prompt well enough. -Going forward I will start offing both messages when I feel the +Going forward I will start offering both messages when I feel the suggested longer message is reasonable enough, and the value of this option decides which will be used. Note that changing the value of this option affects all such messages and that I do not @@ -974,7 +974,7 @@ with the text area." This combines the benefits of `buffer-string', `buffer-substring' and `buffer-substring-no-properties' into one function that is -not as painful to use as the latter. I.e. you can write +not as painful to use as the latter. I.e., you can write (magit--buffer-string) instead of (buffer-substring-no-properties (point-min) diff --git a/elpa/magit-20230502.1321/magit-bisect.el b/elpa/magit-20230718.2010/magit-bisect.el similarity index 100% rename from elpa/magit-20230502.1321/magit-bisect.el rename to elpa/magit-20230718.2010/magit-bisect.el diff --git a/elpa/magit-20230502.1321/magit-blame.el b/elpa/magit-20230718.2010/magit-blame.el similarity index 100% rename from elpa/magit-20230502.1321/magit-blame.el rename to elpa/magit-20230718.2010/magit-blame.el diff --git a/elpa/magit-20230502.1321/magit-bookmark.el b/elpa/magit-20230718.2010/magit-bookmark.el similarity index 100% rename from elpa/magit-20230502.1321/magit-bookmark.el rename to elpa/magit-20230718.2010/magit-bookmark.el diff --git a/elpa/magit-20230502.1321/magit-branch.el b/elpa/magit-20230718.2010/magit-branch.el similarity index 97% rename from elpa/magit-20230502.1321/magit-branch.el rename to elpa/magit-20230718.2010/magit-branch.el index a55c6444..27b81911 100644 --- a/elpa/magit-20230502.1321/magit-branch.el +++ b/elpa/magit-20230718.2010/magit-branch.el @@ -77,7 +77,7 @@ have to match exactly unless they contain a character that makes them invalid as a branch name. Recommended characters to use to trigger interpretation as a regexp are \"*\" and \"^\". Some other characters which you might expect to be invalid, actually -are not, e.g. \".+$\" are all perfectly valid. More precisely, +are not, e.g., \".+$\" are all perfectly valid. More precisely, if `git check-ref-format --branch STRING' exits with a non-zero status, then treat STRING as a regexp. @@ -101,7 +101,7 @@ prefer the former, then you should add branches such as \"master\", "Alist of upstreams to be used when branching from remote branches. When creating a local branch from an ephemeral branch located -on a remote, e.g. a feature or hotfix branch, then that remote +on a remote, e.g., a feature or hotfix branch, then that remote branch should usually not be used as the upstream branch, since the push-remote already allows accessing it and having both the upstream and the push-remote reference the same related branch @@ -254,15 +254,22 @@ branch. If it is something else, then `HEAD' becomes detached. Checkout fails if the working tree or the staging area contain changes. \n(git checkout REVISION)." + (declare (interactive-only magit--checkout)) (interactive (list (magit-read-other-branch-or-commit "Checkout") (magit-branch-arguments))) (when (string-match "\\`heads/\\(.+\\)" revision) (setq revision (match-string 1 revision))) (magit-run-git-async "checkout" args revision)) +(defun magit--checkout (revision &optional args) + (when (string-match "\\`heads/\\(.+\\)" revision) + (setq revision (match-string 1 revision))) + (magit-call-git "checkout" args revision)) + ;;;###autoload (defun magit-branch-create (branch start-point) "Create BRANCH at branch or revision START-POINT." + (declare (interactive-only magit-call-git)) (interactive (magit-branch-read-args "Create branch")) (magit-run-git-async "branch" branch start-point) (set-process-sentinel @@ -275,6 +282,7 @@ changes. ;;;###autoload (defun magit-branch-and-checkout (branch start-point &optional args) "Create and checkout BRANCH at branch or revision START-POINT." + (declare (interactive-only magit-call-git)) (interactive (append (magit-branch-read-args "Create and checkout branch") (list (magit-branch-arguments)))) (if (string-match-p "^stash@{[0-9]+}$" start-point) @@ -299,6 +307,7 @@ Otherwise create and checkout a new branch using the input as its name. Before doing so read the starting-point for the new branch. This is similar to what `magit-branch-and-checkout' does." + (declare (interactive-only magit-call-git)) (interactive (let ((arg (magit-read-other-branch-or-commit "Checkout"))) (list arg @@ -307,8 +316,10 @@ does." (when (string-match "\\`heads/\\(.+\\)" arg) (setq arg (match-string 1 arg))) (if start-point - (magit-branch-and-checkout arg start-point) - (magit-checkout arg))) + (with-suppressed-warnings ((interactive-only magit-branch-and-checkout)) + (magit-branch-and-checkout arg start-point)) + (magit--checkout arg) + (magit-refresh))) ;;;###autoload (defun magit-branch-checkout (branch &optional start-point) @@ -334,6 +345,7 @@ In the latter two cases the upstream is also set. Whether it is set to the chosen START-POINT or something else depends on the value of `magit-branch-adjust-remote-upstream-alist', just like when using `magit-branch-and-checkout'." + (declare (interactive-only magit-call-git)) (interactive (let* ((current (magit-get-current-branch)) (local (magit-list-local-branch-names)) @@ -359,8 +371,11 @@ when using `magit-branch-and-checkout'." (list choice)) (t (list choice (magit-read-starting-point "Create" choice)))))) - (if (not start-point) - (magit-checkout branch (magit-branch-arguments)) + (cond + ((not start-point) + (magit--checkout branch (magit-branch-arguments)) + (magit-refresh)) + (t (when (magit-anything-modified-p t) (user-error "Cannot checkout when there are uncommitted changes")) (magit-run-git-async "checkout" (magit-branch-arguments) @@ -376,7 +391,7 @@ when using `magit-branch-and-checkout'." (when (and (equal branch remote-branch) (not (equal remote (magit-get "remote.pushDefault")))) (magit-set remote "branch" branch "pushRemote")))) - (magit-process-sentinel process event)))))) + (magit-process-sentinel process event))))))) (defun magit-branch-maybe-adjust-upstream (branch start-point) (--when-let @@ -775,11 +790,11 @@ the remote." (not new-target) (magit-y-or-n-p (format "Also rename %S to %S on \"%s\"" old new remote))) - ;; Rename on (i.e. within) the remote, but only if the + ;; Rename on (i.e., within) the remote, but only if the ;; destination ref doesn't exist yet. If that ref already ;; exists, then it probably is of some value and we better ;; not touch it. Ignore what the local ref points at, - ;; i.e. if the local and the remote ref didn't point at + ;; i.e., if the local and the remote ref didn't point at ;; the same commit before the rename then keep it that way. (magit-call-git "push" "-v" remote (format "%s:refs/heads/%s" old-target new) diff --git a/elpa/magit-20230502.1321/magit-bundle.el b/elpa/magit-20230718.2010/magit-bundle.el similarity index 100% rename from elpa/magit-20230502.1321/magit-bundle.el rename to elpa/magit-20230718.2010/magit-bundle.el diff --git a/elpa/magit-20230502.1321/magit-clone.el b/elpa/magit-20230718.2010/magit-clone.el similarity index 99% rename from elpa/magit-20230502.1321/magit-clone.el rename to elpa/magit-20230718.2010/magit-clone.el index 3c6a7810..242113e9 100644 --- a/elpa/magit-20230502.1321/magit-clone.el +++ b/elpa/magit-20230718.2010/magit-clone.el @@ -238,7 +238,7 @@ Then show the status buffer for the new repository." (defun magit-clone-internal (repository directory args &optional sparse) (let* ((checkout (not (member (car args) '("--bare" "--mirror")))) - (remote (or (transient-arg-value "--origin" args) + (remote (or (transient-arg-value "--origin=" args) (magit-get "clone.defaultRemote") "origin")) (set-push-default diff --git a/elpa/magit-20230502.1321/magit-commit.el b/elpa/magit-20230718.2010/magit-commit.el similarity index 99% rename from elpa/magit-20230502.1321/magit-commit.el rename to elpa/magit-20230718.2010/magit-commit.el index 3b6f226f..d7c5affe 100644 --- a/elpa/magit-20230502.1321/magit-commit.el +++ b/elpa/magit-20230718.2010/magit-commit.el @@ -398,7 +398,7 @@ The current time is used as the initial minibuffer input and the original author or committer date is available as the previous history element. -Both the author and the committer dates are changes, unless one +Both the author and the committer dates are changed, unless one of the following is true, in which case only the committer date is updated: - You are not the author of the commit that is being reshelved. diff --git a/elpa/magit-20230502.1321/magit-core.el b/elpa/magit-20230718.2010/magit-core.el similarity index 100% rename from elpa/magit-20230502.1321/magit-core.el rename to elpa/magit-20230718.2010/magit-core.el diff --git a/elpa/magit-20230502.1321/magit-diff.el b/elpa/magit-20230718.2010/magit-diff.el similarity index 99% rename from elpa/magit-20230502.1321/magit-diff.el rename to elpa/magit-20230718.2010/magit-diff.el index 99bb21db..1f5e3522 100644 --- a/elpa/magit-20230502.1321/magit-diff.el +++ b/elpa/magit-20230718.2010/magit-diff.el @@ -495,7 +495,7 @@ repositories known to contain bad commit messages. The body of the message is left alone because (a) most people who write excessively long summary lines usually don't add a body and -(b) even people who have the decency to wrap their lines may have +\(b) even people who have the decency to wrap their lines may have a good reason to include a long line in the body sometimes." :package-version '(magit . "2.90.0") :group 'magit-revision @@ -982,11 +982,12 @@ and `:slant'." :multi-value t) (defun magit-read-files (prompt initial-input history &optional list-fn) - (magit-completing-read-multiple prompt - (funcall (or list-fn #'magit-list-files)) - nil nil - (or initial-input (magit-file-at-point)) - history)) + (magit-with-toplevel + (magit-completing-read-multiple prompt + (funcall (or list-fn #'magit-list-files)) + nil nil + (or initial-input (magit-file-at-point)) + history))) (transient-define-argument magit-diff:-U () :description "Context lines" @@ -1534,14 +1535,14 @@ Visit the worktree version of the appropriate file. The location of point inside the diff determines which file is being visited. The visited version depends on what changes the diff is about. -1. If the diff shows uncommitted changes (i.e. stage or unstaged - changes), then visit the file in the working tree (i.e. the +1. If the diff shows uncommitted changes (i.e., stage or unstaged + changes), then visit the file in the working tree (i.e., the same \"real\" file that `find-file' would visit. In all other - cases visit a \"blob\" (i.e. the version of a file as stored + cases visit a \"blob\" (i.e., the version of a file as stored in some commit). 2. If point is on a removed line, then visit the blob for the - first parent of the commit that removed that line, i.e. the + first parent of the commit that removed that line, i.e., the last commit where that line still exists. 3. If point is on an added or context line, then visit the blob @@ -3054,7 +3055,7 @@ Do not confuse this with `magit-diff-scope' (which see)." ((equal const "--cached") (if (magit-rev-head-p range) 'staged - 'undefined)) ; i.e. committed and staged + 'undefined)) ; i.e., committed and staged (t 'committed)))) ((derived-mode-p 'magit-status-mode) (let ((stype (oref it type))) @@ -3091,7 +3092,7 @@ If optional SECTION is non-nil, then return the scope of that, ignoring the sections selected by the region. Otherwise return the scope of the current section, or if the region is active and selects a valid group of diff related sections, the type of these -sections, i.e. `hunks' or `files'. If SECTION, or if that is nil +sections, i.e., `hunks' or `files'. If SECTION, or if that is nil the current section, is a `hunk' section; and the region region starts and ends inside the body of a that section, then the type is `region'. If the region is empty after a mouse click, then diff --git a/elpa/magit-20230502.1321/magit-ediff.el b/elpa/magit-20230718.2010/magit-ediff.el similarity index 100% rename from elpa/magit-20230502.1321/magit-ediff.el rename to elpa/magit-20230718.2010/magit-ediff.el diff --git a/elpa/magit-20230502.1321/magit-extras.el b/elpa/magit-20230718.2010/magit-extras.el similarity index 98% rename from elpa/magit-20230502.1321/magit-extras.el rename to elpa/magit-20230718.2010/magit-extras.el index 880ef39c..7cef0b6f 100644 --- a/elpa/magit-20230502.1321/magit-extras.el +++ b/elpa/magit-20230718.2010/magit-extras.el @@ -298,8 +298,7 @@ for a repository." "Open FILE with `dired-do-async-shell-command'. Interactively, open the file at point." (interactive (list (or (magit-file-at-point) - (completing-read "Act on file: " - (magit-list-files))))) + (magit-read-file "Act on file")))) (require 'dired-aux) (dired-do-async-shell-command (dired-read-shell-command "& on %s: " current-prefix-arg (list file)) @@ -468,7 +467,7 @@ points at it) otherwise." (if rebase (let ((magit--rebase-published-symbol 'edit-published)) (magit-rebase-edit-commit rev (magit-rebase-arguments))) - (magit-checkout (or (magit-rev-branch rev) rev))) + (magit--checkout (or (magit-rev-branch rev) rev))) (unless (and buffer-file-name (file-equal-p file buffer-file-name)) (let ((blame-type (and magit-blame-mode magit-blame-type))) @@ -684,8 +683,8 @@ stack. When reading the revision from the minibuffer, then it might not be possible to guess the correct repository. When this command -is called inside a repository (e.g. while composing a commit -message), then that repository is used. Otherwise (e.g. while +is called inside a repository (e.g., while composing a commit +message), then that repository is used. Otherwise (e.g., while composing an email) then the repository recorded for the top element of the stack is used (even though we insert another revision). If not called inside a repository and with an empty @@ -859,7 +858,7 @@ abbreviated revision to the `kill-ring' and the The buffer is displayed using `magit-display-buffer', which see." (interactive (list (magit--read-repository-buffer "Display magit buffer: "))) - (magit-display-buffer buffer)) + (magit-display-buffer (get-buffer buffer))) ;;;###autoload (defun magit-switch-to-repository-buffer (buffer) @@ -883,7 +882,7 @@ The buffer is displayed using `magit-display-buffer', which see." (switch-to-buffer-other-frame buffer)) (defun magit--read-repository-buffer (prompt) - (if-let ((topdir (magit-toplevel))) + (if-let ((topdir (magit-rev-parse-safe "--show-toplevel"))) (read-buffer prompt (magit-get-mode-buffer 'magit-status-mode) t (pcase-lambda (`(,_ . ,buf)) @@ -896,7 +895,8 @@ The buffer is displayed using `magit-display-buffer', which see." (and buffer-file-name (string-match-p git-commit-filename-regexp buffer-file-name))) - (equal magit-buffer-topdir topdir)))))) + (equal (magit-rev-parse-safe "--show-toplevel") + topdir)))))) (user-error "Not inside a Git repository"))) ;;; Miscellaneous diff --git a/elpa/magit-20230502.1321/magit-fetch.el b/elpa/magit-20230718.2010/magit-fetch.el similarity index 100% rename from elpa/magit-20230502.1321/magit-fetch.el rename to elpa/magit-20230718.2010/magit-fetch.el diff --git a/elpa/magit-20230502.1321/magit-files.el b/elpa/magit-20230718.2010/magit-files.el similarity index 92% rename from elpa/magit-20230502.1321/magit-files.el rename to elpa/magit-20230718.2010/magit-files.el index 527fd3a9..581606ac 100644 --- a/elpa/magit-20230502.1321/magit-files.el +++ b/elpa/magit-20230718.2010/magit-files.el @@ -289,37 +289,50 @@ directory, while reading the FILENAME." When invoked outside a file-visiting buffer, then fall back to `magit-dispatch'." :info-manual "(magit) Minor Mode for Buffers Visiting Files" - ["Actions" - [("s" "Stage" magit-stage-file) - ("u" "Unstage" magit-unstage-file) - ("c" "Commit" magit-commit) - ("e" "Edit line" magit-edit-line-commit)] - [("D" "Diff..." magit-diff) - ("d" "Diff" magit-diff-buffer-file) - ("g" "Status" magit-status-here)] - [("L" "Log..." magit-log) + [:if magit-file-relative-name + ["File actions" + (" s" "Stage" magit-stage-buffer-file) + (" u" "Unstage" magit-unstage-buffer-file) + (", x" "Untrack" magit-file-untrack) + (", r" "Rename" magit-file-rename) + (", k" "Delete" magit-file-delete) + (", c" "Checkout" magit-file-checkout)] + ["Inspect" + ("D" "Diff..." magit-diff) + ("d" "Diff" magit-diff-buffer-file)] + ["" + ("L" "Log..." magit-log) ("l" "Log" magit-log-buffer-file) ("t" "Trace" magit-log-trace-definition) (7 "M" "Merged" magit-log-merged)] - [("B" "Blame..." magit-blame) + ["" + ("B" "Blame..." magit-blame) ("b" "Blame" magit-blame-addition) ("r" "...removal" magit-blame-removal) ("f" "...reverse" magit-blame-reverse) ("m" "Blame echo" magit-blame-echo) ("q" "Quit blame" magit-blame-quit)] - [("p" "Prev blob" magit-blob-previous) - ("n" "Next blob" magit-blob-next) - ("v" "Goto blob" magit-find-file) - ("V" "Goto file" magit-blob-visit-file)] - [(5 "C-c r" "Rename file" magit-file-rename) - (5 "C-c d" "Delete file" magit-file-delete) - (5 "C-c u" "Untrack file" magit-file-untrack) - (5 "C-c c" "Checkout file" magit-file-checkout)]] - (interactive) - (transient-setup - (if (magit-file-relative-name) - 'magit-file-dispatch - 'magit-dispatch))) + ["Navigate" + ("p" "Prev blob" magit-blob-previous) + ("n" "Next blob" magit-blob-next) + ("v" "Goto blob" magit-find-file) + ("V" "Goto file" magit-blob-visit-file) + ("g" "Goto status" magit-status-here) + ("G" "Goto magit" magit-display-repository-buffer)] + ["More actions" + ("c" "Commit" magit-commit) + ("e" "Edit line" magit-edit-line-commit)]] + [:if-not magit-file-relative-name + ["File actions" + ("s" "Stage" magit-stage-file) + ("u" "Unstage" magit-unstage-file) + ("x" "Untrack" magit-file-untrack) + ("r" "Rename" magit-file-rename) + ("k" "Delete" magit-file-delete) + ("c" "Checkout" magit-file-checkout)] + ["Navigate" + ("g" "Goto status" magit-status-here :if-not-mode magit-status-mode) + ("G" "Goto magit" magit-display-repository-buffer)]]) ;;; Blob Mode @@ -486,13 +499,15 @@ Git, then fallback to using `delete-file'." (car (member (or default (magit-current-file)) files))))) (defun magit-read-file (prompt &optional tracked-only) - (let ((choices (nconc (magit-list-files) - (unless tracked-only (magit-untracked-files))))) - (magit-completing-read - prompt choices nil t nil nil - (car (member (or (magit-section-value-if '(file submodule)) - (magit-file-relative-name nil tracked-only)) - choices))))) + (magit-with-toplevel + (let ((choices (nconc (magit-list-files) + (and (not tracked-only) + (magit-untracked-files))))) + (magit-completing-read + prompt choices nil t nil nil + (car (member (or (magit-section-value-if '(file submodule)) + (magit-file-relative-name nil tracked-only)) + choices)))))) (defun magit-read-tracked-file (prompt) (magit-read-file prompt t)) diff --git a/elpa/magit-20230502.1321/magit-git.el b/elpa/magit-20230718.2010/magit-git.el similarity index 98% rename from elpa/magit-20230502.1321/magit-git.el rename to elpa/magit-20230718.2010/magit-git.el index 9c36ac93..4a589fa3 100644 --- a/elpa/magit-20230502.1321/magit-git.el +++ b/elpa/magit-20230718.2010/magit-git.el @@ -41,8 +41,6 @@ (declare-function magit-get-mode-buffer "magit-mode" (mode &optional value frame)) (declare-function magit-refresh "magit-mode" ()) -(defvar magit-buffer-gitdir) -(defvar magit-buffer-topdir) (defvar magit-buffer-diff-type) (defvar magit-buffer-diff-args) (defvar magit-buffer-file-name) @@ -684,7 +682,7 @@ needs at least MINIMAL, otherwise it defaults to \"Magit\"." (let* ((host (file-remote-p default-directory)) (msg (format-spec (cond (host "\ -%w requires Git %m or greater, but on %h the version is %m. +%w requires Git %m or greater, but on %h the version is %v. If multiple Git versions are installed on the host, then the problem might be that TRAMP uses the wrong executable. @@ -844,29 +842,19 @@ Also see `magit-git-config-p'." (defun magit-gitdir (&optional directory) "Return the absolute and resolved path of the .git directory. -As a special-case, if the `GIT_DIR' environment variable is set, -return its value. It is usually a bad idea to set this variable -when using Magit. - -Otherwise if `magit-buffer-gitdir' is set, return that. The -value of this buffer-local variable is set to the value returned -by this function, when a Magit buffer is first created. So this -effectively memorizes the value returned by this function. - +If the `GIT_DIR' environment variable is define then return that. Otherwise return the .git directory for DIRECTORY, or if that is nil, then for `default-directory' instead. If the directory is not located inside a Git repository, then return nil." - (or (getenv "GIT_DIR") - magit-buffer-gitdir - (let ((default-directory (or directory default-directory))) - (magit--with-refresh-cache (list default-directory 'magit-gitdir) - (magit--with-safe-default-directory nil - (and-let* ((dir (magit-rev-parse-safe "--git-dir")) - (dir (file-name-as-directory - (magit-expand-git-file-name dir)))) - (if (file-remote-p dir) - dir - (concat (file-remote-p default-directory) dir)))))))) + (let ((default-directory (or directory default-directory))) + (magit--with-refresh-cache (list default-directory 'magit-gitdir) + (magit--with-safe-default-directory nil + (and-let* + ((dir (magit-rev-parse-safe "--git-dir")) + (dir (file-name-as-directory (magit-expand-git-file-name dir)))) + (if (file-remote-p dir) + dir + (concat (file-remote-p default-directory) dir))))))) (defvar magit--separated-gitdirs nil) @@ -895,14 +883,10 @@ tree. As a special case, from within a bare repository return the control directory instead. When called outside a repository then return nil. -When `magit-buffer-toplevel' is non-nil, then return its value, -unless DIRECTORY is non-nil, or `default-directory' was let-bound -to another directory, while another buffer was current. - When optional DIRECTORY is non-nil then return the toplevel for that directory instead of the one for `default-directory'. -Try to respect the option `find-file-visit-truename', i.e. when +Try to respect the option `find-file-visit-truename', i.e., when the value of that option is nil, then avoid needlessly returning the truename. When a symlink to a sub-directory of the working tree is involved, or when called from within a sub-directory of @@ -910,12 +894,6 @@ the gitdir or from the toplevel of a gitdir, which itself is not located within the working tree, then it is not possible to avoid returning the truename." (or - (and magit-buffer-topdir - (not directory) - (equal (expand-file-name default-directory) - (expand-file-name - (buffer-local-value 'default-directory (current-buffer)))) - magit-buffer-topdir) (magit--with-refresh-cache (cons (or directory default-directory) 'magit-toplevel) (magit--with-safe-default-directory directory @@ -980,11 +958,8 @@ returning the truename." ;; working tree. (file-name-directory (directory-file-name gitdir)))))))))))) -(defun magit--toplevel-safe (&optional nocache) - (or (if nocache - (let ((magit-buffer-topdir nil)) - (magit-toplevel)) - (magit-toplevel)) +(defun magit--toplevel-safe () + (or (magit-toplevel) (magit--not-inside-repository-error))) (defmacro magit-with-toplevel (&rest body) @@ -1097,8 +1072,12 @@ tracked file." (directory-file-name (file-name-directory file)))))) (file-relative-name file dir)))) +(defun magit-file-ignored-p (file) + (magit-git-string-p "ls-files" "--others" "--ignored" "--exclude-standard" + "--" file)) + (defun magit-file-tracked-p (file) - (magit-git-success "ls-files" "--error-unmatch" file)) + (magit-git-success "ls-files" "--error-unmatch" "--" file)) (defun magit-list-files (&rest args) (apply #'magit-git-items "ls-files" "-z" "--full-name" args)) @@ -1709,7 +1688,7 @@ Otherwise UPSTREAM has to be an existing branch." It BRANCH is nil, then return the upstream of the current branch, if any, nil otherwise. If the upstream is not configured, the configured remote is an url, or the named branch does not exist, -then return nil. I.e. return an existing local or +then return nil. I.e., return an existing local or remote-tracking branch ref." (and-let* ((branch (or branch (magit-get-current-branch)))) (magit-ref-fullname (concat branch "@{upstream}")))) @@ -1719,7 +1698,7 @@ remote-tracking branch ref." It BRANCH is nil, then return the upstream of the current branch if any, nil otherwise. If the upstream is not configured, the configured remote is an url, or the named branch does not exist, -then return nil. I.e. return the name of an existing local or +then return nil. I.e., return the name of an existing local or remote-tracking branch. The returned string is colorized according to the branch type." (magit--with-refresh-cache diff --git a/elpa/magit-20230502.1321/magit-gitignore.el b/elpa/magit-20230718.2010/magit-gitignore.el similarity index 100% rename from elpa/magit-20230502.1321/magit-gitignore.el rename to elpa/magit-20230718.2010/magit-gitignore.el diff --git a/elpa/magit-20230502.1321/magit-log.el b/elpa/magit-20230718.2010/magit-log.el similarity index 99% rename from elpa/magit-20230502.1321/magit-log.el rename to elpa/magit-20230718.2010/magit-log.el index 21c41d37..c0010c20 100644 --- a/elpa/magit-20230502.1321/magit-log.el +++ b/elpa/magit-20230718.2010/magit-log.el @@ -1907,7 +1907,7 @@ Show the last `magit-log-section-commit-count' commits." (defun magit-insert-unpulled-cherries () "Insert section showing unpulled commits. Like `magit-insert-unpulled-from-upstream' but prefix each commit -which has not been applied yet (i.e. a commit with a patch-id +which has not been applied yet (i.e., a commit with a patch-id not shared with any local commit) with \"+\", and all others with \"-\"." (when (magit-git-success "rev-parse" "@{upstream}") @@ -1920,7 +1920,7 @@ not shared with any local commit) with \"+\", and all others with (defun magit-insert-unpushed-cherries () "Insert section showing unpushed commits. Like `magit-insert-unpushed-to-upstream' but prefix each commit -which has not been applied to upstream yet (i.e. a commit with +which has not been applied to upstream yet (i.e., a commit with a patch-id not shared with any upstream commit) with \"+\", and all others with \"-\"." (when (magit-git-success "rev-parse" "@{upstream}") diff --git a/elpa/magit-20230502.1321/magit-margin.el b/elpa/magit-20230718.2010/magit-margin.el similarity index 99% rename from elpa/magit-20230502.1321/magit-margin.el rename to elpa/magit-20230718.2010/magit-margin.el index 20688b43..0748fa38 100644 --- a/elpa/magit-20230502.1321/magit-margin.el +++ b/elpa/magit-20230718.2010/magit-margin.el @@ -44,7 +44,7 @@ options to the same values by customizing `magit-log-margin' values for the other options will default to what you have set for that variable. Likewise if you set `magit-log-margin's INIT to nil, then that is used in the default of all other options. But -setting it to t, i.e. re-enforcing the default for that option, +setting it to t, i.e., re-enforcing the default for that option, does not carry to other options." :link '(info-link "(magit)Log Margin") :group 'magit-log) diff --git a/elpa/magit-20230502.1321/magit-merge.el b/elpa/magit-20230718.2010/magit-merge.el similarity index 100% rename from elpa/magit-20230502.1321/magit-merge.el rename to elpa/magit-20230718.2010/magit-merge.el diff --git a/elpa/magit-20230502.1321/magit-mode.el b/elpa/magit-20230718.2010/magit-mode.el similarity index 99% rename from elpa/magit-20230502.1321/magit-mode.el rename to elpa/magit-20230718.2010/magit-mode.el index d05d0c97..c5d63ba3 100644 --- a/elpa/magit-20230502.1321/magit-mode.el +++ b/elpa/magit-20230718.2010/magit-mode.el @@ -231,7 +231,7 @@ and Buffer Variables'." This affects certain commands such as `magit-show-commit' that are suffixes of the diff or log transient prefix commands, but -only if they are invoked directly, i.e. *not* as a suffix. +only if they are invoked directly, i.e., *not* as a suffix. Valid values are: @@ -530,8 +530,6 @@ Magit is documented in info node `(magit)'." ;;; Local Variables -(defvar-local magit-buffer-gitdir nil) -(defvar-local magit-buffer-topdir nil) (defvar-local magit-buffer-arguments nil) (defvar-local magit-buffer-diff-type nil) (defvar-local magit-buffer-diff-args nil) @@ -600,8 +598,6 @@ The buffer's major-mode should derive from `magit-section-mode'." (setq magit-previous-section section) (funcall mode) (magit-xref-setup #'magit-setup-buffer-internal bindings) - (setq magit-buffer-gitdir (magit-gitdir)) - (setq magit-buffer-topdir (magit-toplevel)) (pcase-dolist (`(,var ,val) bindings) (set (make-local-variable var) val)) (when created @@ -805,7 +801,7 @@ If `visible', then only consider buffers on all visible frames. If `selected' or t, then only consider buffers on the selected frame. If a frame, then only consider buffers on that frame." - (let ((topdir (magit--toplevel-safe 'nocache))) + (let ((topdir (magit--toplevel-safe))) (cl-flet* ((b (buffer) (with-current-buffer buffer (and (eq major-mode mode) @@ -827,7 +823,7 @@ If a frame, then only consider buffers on that frame." ((guard (framep frame)) (seq-some #'w (window-list frame))))))) (defun magit-generate-new-buffer (mode &optional value directory) - (let* ((default-directory (or directory (magit--toplevel-safe 'nocache))) + (let* ((default-directory (or directory (magit--toplevel-safe))) (name (funcall magit-generate-buffer-name-function mode value)) (buffer (generate-new-buffer name))) (with-current-buffer buffer @@ -1202,7 +1198,9 @@ Later, when the buffer is buried, it may be restored by (set-window-configuration winconf) (when (buffer-live-p buffer) (with-current-buffer buffer - (setq magit-previous-window-configuration nil)))))) + (setq magit-previous-window-configuration nil))) + (set-buffer (with-selected-window (selected-window) + (current-buffer)))))) ;;; Buffer History diff --git a/elpa/magit-20230502.1321/magit-notes.el b/elpa/magit-20230718.2010/magit-notes.el similarity index 100% rename from elpa/magit-20230502.1321/magit-notes.el rename to elpa/magit-20230718.2010/magit-notes.el diff --git a/elpa/magit-20230502.1321/magit-patch.el b/elpa/magit-20230718.2010/magit-patch.el similarity index 100% rename from elpa/magit-20230502.1321/magit-patch.el rename to elpa/magit-20230718.2010/magit-patch.el diff --git a/elpa/magit-20230502.1321/magit-pkg.el b/elpa/magit-20230718.2010/magit-pkg.el similarity index 78% rename from elpa/magit-20230502.1321/magit-pkg.el rename to elpa/magit-20230718.2010/magit-pkg.el index 39513c47..c5496b7e 100644 --- a/elpa/magit-20230502.1321/magit-pkg.el +++ b/elpa/magit-20230718.2010/magit-pkg.el @@ -1,4 +1,4 @@ -(define-package "magit" "20230502.1321" "A Git porcelain inside Emacs." +(define-package "magit" "20230718.2010" "A Git porcelain inside Emacs." '((emacs "25.1") (compat "29.1.3.4") (dash "20221013") @@ -6,7 +6,7 @@ (magit-section "20230101") (transient "20230201") (with-editor "20230118")) - :commit "6067f92c0195616707b25e23c2d4c0dd81928fd8" :authors + :commit "2126eab6a944e095a65ef00de7cda3bbd0023197" :authors '(("Marius Vollmer" . "marius.vollmer@gmail.com") ("Jonas Bernoulli" . "jonas@bernoul.li")) :maintainer diff --git a/elpa/magit-20230502.1321/magit-process.el b/elpa/magit-20230718.2010/magit-process.el similarity index 99% rename from elpa/magit-20230502.1321/magit-process.el rename to elpa/magit-20230718.2010/magit-process.el index d13efb1b..67b39a6b 100644 --- a/elpa/magit-20230502.1321/magit-process.el +++ b/elpa/magit-20230718.2010/magit-process.el @@ -222,7 +222,7 @@ hook allows users to deal with such questions explicitly. Each function is called with the process and the output string as arguments until one of the functions returns non-nil. The function is responsible for asking the user the appropriate -question using e.g. `read-char-choice' and then forwarding the +question using, e.g., `read-char-choice' and then forwarding the answer to the process using `process-send-string'. While functions such as `magit-process-yes-or-no-prompt' may not @@ -955,7 +955,7 @@ as argument." (magit-git-executable) "credential-cache--daemon" magit-credential-cache-daemon-socket) - ;; Some Git implementations (e.g. Windows) won't have + ;; Some Git implementations (e.g., Windows) won't have ;; this program; if we fail the first time, stop trying. ((debug error) (remove-hook 'magit-credential-hook diff --git a/elpa/magit-20230502.1321/magit-pull.el b/elpa/magit-20230718.2010/magit-pull.el similarity index 100% rename from elpa/magit-20230502.1321/magit-pull.el rename to elpa/magit-20230718.2010/magit-pull.el diff --git a/elpa/magit-20230502.1321/magit-push.el b/elpa/magit-20230718.2010/magit-push.el similarity index 100% rename from elpa/magit-20230502.1321/magit-push.el rename to elpa/magit-20230718.2010/magit-push.el diff --git a/elpa/magit-20230502.1321/magit-reflog.el b/elpa/magit-20230718.2010/magit-reflog.el similarity index 100% rename from elpa/magit-20230502.1321/magit-reflog.el rename to elpa/magit-20230718.2010/magit-reflog.el diff --git a/elpa/magit-20230502.1321/magit-refs.el b/elpa/magit-20230718.2010/magit-refs.el similarity index 100% rename from elpa/magit-20230502.1321/magit-refs.el rename to elpa/magit-20230718.2010/magit-refs.el diff --git a/elpa/magit-20230502.1321/magit-remote.el b/elpa/magit-20230718.2010/magit-remote.el similarity index 100% rename from elpa/magit-20230502.1321/magit-remote.el rename to elpa/magit-20230718.2010/magit-remote.el diff --git a/elpa/magit-20230502.1321/magit-repos.el b/elpa/magit-20230718.2010/magit-repos.el similarity index 98% rename from elpa/magit-20230502.1321/magit-repos.el rename to elpa/magit-20230718.2010/magit-repos.el index a313b5d4..df7933dc 100644 --- a/elpa/magit-20230502.1321/magit-repos.el +++ b/elpa/magit-20230718.2010/magit-repos.el @@ -93,12 +93,12 @@ The `:sort' function has a weird interface described in the docstring of `tabulated-list--get-sort'. Alternatively `<' and `magit-repolist-version<' can be used as those functions are automatically replaced with functions that satisfy the interface. -Set `:sort' to nil to inhibit sorting; if unspecifed, then the +Set `:sort' to nil to inhibit sorting; if unspecified, then the column is sortable using the default sorter. You may wish to display a range of numeric columns using just one character per column and without any padding between columns, in -which case you should use an appropriat HEADER, set WIDTH to 1, +which case you should use an appropriate HEADER, set WIDTH to 1, and set `:pad-right' to 0. \"+\" is substituted for numbers higher than 9." :package-version '(magit . "2.12.0") @@ -149,7 +149,7 @@ non-nil, means to invert the resulting sort." (defun magit-list-repositories () "Display a list of repositories. -Use the options `magit-repository-directories' to control which +Use the option `magit-repository-directories' to control which repositories are displayed." (interactive) (magit-repolist-setup (default-value 'magit-repolist-columns))) @@ -342,8 +342,8 @@ If it contains \"%s\" then the directory is substituted for that." See `tabulated-list--get-sorter'. Given a more reasonable API this would not be necessary and one could just use SORT-PREDICATE directly. CONVERT-CELL can be used to turn the cell value, which -is always a string back into e.g. a number. COLUMN-IDX has to be -the index of the column that uses the returned sorter function." +is always a string back into, e.g., a number. COLUMN-IDX has to +be the index of the column that uses the returned sorter function." (lambda (a b) (funcall sort-predicate (funcall convert-cell (aref (cadr a) column-idx)) diff --git a/elpa/magit-20230502.1321/magit-reset.el b/elpa/magit-20230718.2010/magit-reset.el similarity index 100% rename from elpa/magit-20230502.1321/magit-reset.el rename to elpa/magit-20230718.2010/magit-reset.el diff --git a/elpa/magit-20230502.1321/magit-sequence.el b/elpa/magit-20230718.2010/magit-sequence.el similarity index 99% rename from elpa/magit-20230502.1321/magit-sequence.el rename to elpa/magit-20230718.2010/magit-sequence.el index d02e6812..7208e924 100644 --- a/elpa/magit-20230502.1321/magit-sequence.el +++ b/elpa/magit-20230718.2010/magit-sequence.el @@ -976,7 +976,7 @@ If no such sequence is in progress, do nothing." (defun magit-rebase--todo () "Return `git-rebase-action' instances for remaining rebase actions. These are ordered in that the same way they'll be sorted in the -status buffer (i.e. the reverse of how they will be applied)." +status buffer (i.e., the reverse of how they will be applied)." (let ((comment-start (or (magit-get "core.commentChar") "#")) lines) (with-temp-buffer diff --git a/elpa/magit-20230502.1321/magit-sparse-checkout.el b/elpa/magit-20230718.2010/magit-sparse-checkout.el similarity index 100% rename from elpa/magit-20230502.1321/magit-sparse-checkout.el rename to elpa/magit-20230718.2010/magit-sparse-checkout.el diff --git a/elpa/magit-20230502.1321/magit-stash.el b/elpa/magit-20230718.2010/magit-stash.el similarity index 97% rename from elpa/magit-20230502.1321/magit-stash.el rename to elpa/magit-20230718.2010/magit-stash.el index f471e27f..c3efef16 100644 --- a/elpa/magit-20230502.1321/magit-stash.el +++ b/elpa/magit-20230718.2010/magit-stash.el @@ -282,20 +282,23 @@ When the region is active offer to drop all contained stashes." ;;;###autoload (defun magit-stash-branch (stash branch) - "Create and checkout a new BRANCH from STASH." + "Create and checkout a new BRANCH from an existing STASH. +The new branch starts at the commit that was current when the +stash was created. If the stash applies cleanly, then drop it." (interactive (list (magit-read-stash "Branch stash") (magit-read-string-ns "Branch name"))) (magit-run-git "stash" "branch" branch stash)) ;;;###autoload (defun magit-stash-branch-here (stash branch) - "Create and checkout a new BRANCH and apply STASH. -The branch is created using `magit-branch-and-checkout', using the -current branch or `HEAD' as the start-point." + "Create and checkout a new BRANCH from an existing STASH. +Use the current branch or `HEAD' as the starting-point of BRANCH. +Then apply STASH, dropping it if it applies cleanly." (interactive (list (magit-read-stash "Branch stash") (magit-read-string-ns "Branch name"))) - (let ((magit-inhibit-refresh t)) - (magit-branch-and-checkout branch (or (magit-get-current-branch) "HEAD"))) + (let ((start-point (or (magit-get-current-branch) "HEAD"))) + (magit-call-git "checkout" "-b" branch start-point) + (magit-branch-maybe-adjust-upstream branch start-point)) (magit-stash-apply stash)) ;;;###autoload diff --git a/elpa/magit-20230502.1321/magit-status.el b/elpa/magit-20230718.2010/magit-status.el similarity index 100% rename from elpa/magit-20230502.1321/magit-status.el rename to elpa/magit-20230718.2010/magit-status.el diff --git a/elpa/magit-20230502.1321/magit-submodule.el b/elpa/magit-20230718.2010/magit-submodule.el similarity index 99% rename from elpa/magit-20230502.1321/magit-submodule.el rename to elpa/magit-20230718.2010/magit-submodule.el index 5f8043f3..7309dabb 100644 --- a/elpa/magit-20230502.1321/magit-submodule.el +++ b/elpa/magit-20230718.2010/magit-submodule.el @@ -100,12 +100,12 @@ The `:sort' function has a weird interface described in the docstring of `tabulated-list--get-sort'. Alternatively `<' and `magit-repolist-version<' can be used as those functions are automatically replaced with functions that satisfy the interface. -Set `:sort' to nil to inhibit sorting; if unspecifed, then the +Set `:sort' to nil to inhibit sorting; if unspecified, then the column is sortable using the default sorter. You may wish to display a range of numeric columns using just one character per column and without any padding between columns, in -which case you should use an appropriat HEADER, set WIDTH to 1, +which case you should use an appropriate HEADER, set WIDTH to 1, and set `:pad-right' to 0. \"+\" is substituted for numbers higher than 9." :package-version '(magit . "2.8.0") diff --git a/elpa/magit-20230502.1321/magit-subtree.el b/elpa/magit-20230718.2010/magit-subtree.el similarity index 100% rename from elpa/magit-20230502.1321/magit-subtree.el rename to elpa/magit-20230718.2010/magit-subtree.el diff --git a/elpa/magit-20230502.1321/magit-tag.el b/elpa/magit-20230718.2010/magit-tag.el similarity index 100% rename from elpa/magit-20230502.1321/magit-tag.el rename to elpa/magit-20230718.2010/magit-tag.el diff --git a/elpa/magit-20230502.1321/magit-transient.el b/elpa/magit-20230718.2010/magit-transient.el similarity index 100% rename from elpa/magit-20230502.1321/magit-transient.el rename to elpa/magit-20230718.2010/magit-transient.el diff --git a/elpa/magit-20230502.1321/magit-wip.el b/elpa/magit-20230718.2010/magit-wip.el similarity index 99% rename from elpa/magit-20230502.1321/magit-wip.el rename to elpa/magit-20230718.2010/magit-wip.el index d6ca07c9..0852a059 100644 --- a/elpa/magit-20230502.1321/magit-wip.el +++ b/elpa/magit-20230718.2010/magit-wip.el @@ -110,7 +110,7 @@ is used as `branch-ref'." (define-minor-mode magit-wip-mode "Save uncommitted changes to work-in-progress refs. -Whenever appropriate (i.e. when dataloss would be a possibility +Whenever appropriate (i.e., when dataloss would be a possibility otherwise) this mode causes uncommitted changes to be committed to dedicated work-in-progress refs. diff --git a/elpa/magit-20230502.1321/magit-worktree.el b/elpa/magit-20230718.2010/magit-worktree.el similarity index 99% rename from elpa/magit-20230502.1321/magit-worktree.el rename to elpa/magit-20230718.2010/magit-worktree.el index a4275f7e..83db2e45 100644 --- a/elpa/magit-20230502.1321/magit-worktree.el +++ b/elpa/magit-20230718.2010/magit-worktree.el @@ -33,7 +33,7 @@ (defcustom magit-worktree-read-directory-name-function #'read-directory-name "Function used to read a directory for worktree commands. This is called with one argument, the prompt, and can be used -to e.g. use a base directory other than `default-directory'. +to, e.g., use a base directory other than `default-directory'. Used by `magit-worktree-checkout' and `magit-worktree-branch'." :package-version '(magit . "3.0.0") :group 'magit-commands diff --git a/elpa/magit-20230502.1321/magit.el b/elpa/magit-20230718.2010/magit.el similarity index 84% rename from elpa/magit-20230502.1321/magit.el rename to elpa/magit-20230718.2010/magit.el index f30a5c8f..a8842259 100644 --- a/elpa/magit-20230502.1321/magit.el +++ b/elpa/magit-20230718.2010/magit.el @@ -228,7 +228,7 @@ and/or `magit-branch-remote-head'." (defface magit-signature-error '((t :foreground "light blue")) - "Face for signatures that cannot be checked (e.g. missing key)." + "Face for signatures that cannot be checked (e.g., missing key)." :group 'magit-faces) (defface magit-cherry-unmatched @@ -249,62 +249,75 @@ and/or `magit-branch-remote-head'." ;;; Global Bindings ;;;###autoload -(defcustom magit-define-global-key-bindings t - "Whether to bind some Magit commands in the global keymap. - -If this variable is non-nil, then the following bindings may -be added to the global keymap. The default is t. - -key binding ---- ------- -C-x g magit-status -C-x M-g magit-dispatch -C-c M-g magit-file-dispatch - -These bindings may be added when `after-init-hook' is run. -Each binding is added if and only if at that time no other key -is bound to the same command and no other command is bound to -the same key. In other words we try to avoid adding bindings -that are unnecessary, as well as bindings that conflict with -other bindings. - -Adding the above bindings is delayed until `after-init-hook' -is called to allow users to set the variable anywhere in their -init file (without having to make sure to do so before `magit' -is loaded or autoloaded) and to increase the likelihood that -all the potentially conflicting user bindings have already -been added. +(defcustom magit-define-global-key-bindings 'default + "Which set of key bindings to add to the global keymap, if any. + +This option controls which set of Magit key bindings, if any, may +be added to the global keymap, even before Magit is first used in +the current Emacs session. + +If the value is nil, no bindings are added. + +If `default', maybe add: + + C-x g `magit-status' + C-x M-g `magit-dispatch' + C-c M-g `magit-file-dispatch' + +If `recommended', maybe add: + + C-x g `magit-status' + C-c g `magit-dispatch' + C-c f `magit-file-dispatch' + + These bindings are strongly recommended, but we cannot use + them by default, because the \"C-c \" namespace is + strictly reserved for bindings added by the user. + +The bindings in the chosen set may be added when +`after-init-hook' is run. Each binding is added if, and only +if, at that time no other key is bound to the same command, +and no other command is bound to the same key. In other words +we try to avoid adding bindings that are unnecessary, as well +as bindings that conflict with other bindings. + +Adding these bindings is delayed until `after-init-hook' is +run to allow users to set the variable anywhere in their init +file (without having to make sure to do so before `magit' is +loaded or autoloaded) and to increase the likelihood that all +the potentially conflicting user bindings have already been +added. To set this variable use either `setq' or the Custom interface. Do not use the function `customize-set-variable' because doing -that would cause Magit to be loaded immediately when that form +that would cause Magit to be loaded immediately, when that form is evaluated (this differs from `custom-set-variables', which doesn't load the libraries that define the customized variables). -Setting this variable to nil has no effect if that is done after -the key bindings have already been added. - -We recommend that you bind \"C-c g\" instead of \"C-c M-g\" to -`magit-file-dispatch'. The former is a much better binding -but the \"C-c \" namespace is strictly reserved for -users; preventing Magit from using it by default. - -Also see info node `(magit)Commands for Buffers Visiting Files'." - :package-version '(magit . "3.0.0") +Setting this variable has no effect if `after-init-hook' has +already been run." + :package-version '(magit . "4.0.0") :group 'magit-essentials - :type 'boolean) + :type '(choice (const :tag "Add no binding" nil) + (const :tag "Use default bindings" default) + (const :tag "Use recommended bindings" recommended))) ;; This is autoloaded and thus is used before `compat' is ;; loaded, so we cannot use `keymap-lookup' and `keymap-set'. ;;;###autoload (progn (defun magit-maybe-define-global-key-bindings (&optional force) + "See variable `magit-define-global-key-bindings'." (when magit-define-global-key-bindings (let ((map (current-global-map))) (pcase-dolist (`(,key . ,def) - '(("C-x g" . magit-status) - ("C-x M-g" . magit-dispatch) - ("C-c M-g" . magit-file-dispatch))) + (cond ((eq magit-define-global-key-bindings 'recommended) + '(("C-x g" . magit-status) + ("C-c g" . magit-dispatch) + ("C-c f" . magit-file-dispatch))) + ('(("C-x g" . magit-status) + ("C-x M-g" . magit-dispatch) + ("C-c M-g" . magit-file-dispatch))))) (when (or force (not (or (lookup-key map (kbd key)) (where-is-internal def (make-sparse-keymap) t)))) @@ -387,12 +400,12 @@ Also see info node `(magit)Commands for Buffers Visiting Files'." ("U" "Unstage all" magit-unstage-all)]] ["Essential commands" :if-derived magit-mode - [("g" " refresh current buffer" magit-refresh) - ("q" " bury current buffer" magit-mode-bury-buffer) - ("" " toggle section at point" magit-section-toggle) - ("" "visit thing at point" magit-visit-thing)] - [("C-x m" "show all key bindings" describe-mode) - ("C-x i" "show Info manual" magit-info)]]) + [("g" " Refresh current buffer" magit-refresh) + ("q" " Bury current buffer" magit-mode-bury-buffer) + ("" " Toggle section at point" magit-section-toggle) + ("" "Visit thing at point" magit-visit-thing)] + [("C-x m" "Show all key bindings" describe-mode) + ("C-x i" "Show Info manual" magit-info)]]) ;;; Git Popup @@ -551,7 +564,8 @@ is run in the top-level directory of the current working tree." "magit-bind-match-strings" "magit-with-temp-index" "magit-with-blob" - "magit-with-toplevel") t) + "magit-with-toplevel") + t) "\\_>") . 1)))) @@ -564,13 +578,16 @@ is run in the top-level directory of the current working tree." Use the function by the same name instead of this variable.") ;;;###autoload -(defun magit-version (&optional print-dest) +(defun magit-version (&optional print-dest interactive) "Return the version of Magit currently in use. -If optional argument PRINT-DEST is non-nil, output -stream (interactively, the echo area, or the current buffer with -a prefix argument), also print the used versions of Magit, Git, -and Emacs to it." - (interactive (list (if current-prefix-arg (current-buffer) t))) + +If optional argument PRINT-DEST is non-nil, also print the used +versions of Magit, Transient, Git and Emacs to the output stream +selected by that argument. Interactively use the echo area, or +with a prefix argument use the current buffer. Additionally put +the output in the kill ring. +\n(fn &optional PRINT-DEST)" + (interactive (list (if current-prefix-arg (current-buffer) t) t)) (let ((magit-git-global-arguments nil) (toplib (or load-file-name buffer-file-name)) debug) @@ -626,7 +643,7 @@ and Emacs to it." (setq magit-version (match-string 1 dirname))))) ;; If all else fails, just report the commit hash. It's ;; better than nothing and we cannot do better in the case - ;; of e.g. a shallow clone. + ;; of e.g., a shallow clone. (progn (push 'hash debug) ;; Same check as above to see if it's really the Magit repo. @@ -638,24 +655,35 @@ and Emacs to it." (magit-git-string "rev-parse" "HEAD")))))))) (if (stringp magit-version) (when print-dest - (princ (format "Magit %s%s, Git %s, Emacs %s, %s" - (or magit-version "(unknown)") - (or (and (ignore-errors - (magit--version>= magit-version "2008")) - (ignore-errors - (require 'lisp-mnt) - (and (fboundp 'lm-header) - (format - " [>= %s]" - (with-temp-buffer - (insert-file-contents - (locate-library "magit.el" t)) - (lm-header "Package-Version")))))) - "") - (magit--safe-git-version) - emacs-version - system-type) - print-dest)) + (let ((str (format + "Magit %s%s, Transient %s, Git %s, Emacs %s, %s" + (or magit-version "(unknown)") + (or (and (ignore-errors + (magit--version>= magit-version "2008")) + (ignore-errors + (require 'lisp-mnt) + (and (fboundp 'lm-header) + (format + " [>= %s]" + (with-temp-buffer + (insert-file-contents + (locate-library "magit.el" t)) + (lm-header "Package-Version")))))) + "") + (or (ignore-errors + (require 'lisp-mnt) + (and (fboundp 'lm-header) + (with-temp-buffer + (insert-file-contents + (locate-library "transient.el" t)) + (lm-header "Package-Version")))) + "(unknown)") + (magit--safe-git-version) + emacs-version + system-type))) + (when interactive + (kill-new str)) + (princ str print-dest))) (setq debug (reverse debug)) (setq magit-version 'error) (when magit-version diff --git a/elpa/magit-20230502.1321/magit.info b/elpa/magit-20230718.2010/magit.info similarity index 93% rename from elpa/magit-20230502.1321/magit.info rename to elpa/magit-20230718.2010/magit.info index dfa078b4..eda5ac42 100644 --- a/elpa/magit-20230502.1321/magit.info +++ b/elpa/magit-20230718.2010/magit.info @@ -263,7 +263,7 @@ Essential Settings * Safety:: * Performance:: -* Default Bindings:: +* Global Bindings:: Plumbing @@ -355,7 +355,7 @@ noisy, but, since sections are collapsible, it’s not. To stage or unstage a change one places the cursor on the change and then types ‘s’ or ‘u’. The change can be a file or a hunk, or when the -region is active (i.e. when there is a selection) several files or +region is active (i.e., when there is a selection) several files or hunks, or even just part of a hunk. The change or changes that these commands - and many others - would act on are highlighted. @@ -465,10 +465,10 @@ File: magit.info, Node: Installing from the Git Repository, Next: Post-Install 2.2 Installing from the Git Repository ====================================== -Magit depends on the ‘dash’, ‘transient’ and ‘with-editor’ libraries -which are available from Melpa and Melpa-Stable. Install them using -‘M-x package-install RET RET’. Of course you may also install -them manually from their repository. +Magit depends on the ‘compat’, ‘dash’, ‘transient’ and ‘with-editor’ +libraries which are available from Melpa and Melpa-Stable. Install them +using ‘M-x package-install RET RET’. Of course you may also +install them manually from their repository. Then clone the Magit repository: @@ -479,15 +479,17 @@ them manually from their repository. $ make - If you haven’t installed ‘dash’, ‘transient’ and ‘with-editor’ from -Melpa or at ‘/path/to/magit/../’, then you have to tell ‘make’ -where to find them. To do so create the file ‘/path/to/magit/config.mk’ -with the following content before running ‘make’: + If you haven’t installed ‘compat’, ‘dash’, ‘transient’ and +‘with-editor’ from Melpa or at ‘/path/to/magit/../’, then you +have to tell ‘make’ where to find them. To do so create the file +‘/path/to/magit/config.mk’ with the following content before running +‘make’: LOAD_PATH = -L ~/.emacs.d/site-lisp/magit/lisp LOAD_PATH += -L ~/.emacs.d/site-lisp/dash LOAD_PATH += -L ~/.emacs.d/site-lisp/transient/lisp - LOAD_PATH += -L ~/.emacs.d/site-lisp/with-editor + LOAD_PATH += -L ~/.emacs.d/site-lisp/with-editor/lisp + LOAD_PATH += -L ~/.emacs.d/site-lisp/compat Finally add this to your init file: @@ -653,17 +655,25 @@ just "transients".) The key bindings in that menu correspond to the bindings in Magit buffers, including but not limited to the status buffer. So you could type ‘h d’ to bring up the diff menu, but once you remember that "d" -stands for "diff", you would usually do so by just typing ‘d’. But this -"prefix of prefixes" is useful even once you have memorized all the -bindings, as it can provide easy access to Magit commands from non-Magit -buffers. The global binding is ‘C-x M-g’. +stands for "diff", you would usually do so by just typing ‘d’. - In file visiting buffers ‘C-c M-g’ brings up a similar menu featuring -commands that act on just the visited file, see *note Commands for -Buffers Visiting Files::. + This "prefix of prefixes" is useful even once you have memorized all +the bindings, as it can provide easy access to Magit commands from +non-Magit buffers. So, by default, it is globally bound to ‘C-x M-g’. + + A similar menu featuring (for the most part) commands that act on +just the file being visited in the current buffer, is globally bound to +‘C-c M-g’. That binding can also be used in buffers, which do not visit +a file, but then only a subset of the commands is available. + + The global key bindings mentioned in the previous two paragraphs are +quite inconvenient. We recommend using ‘C-c g’ and ‘C-c f’ instead, but +cannot use those key sequences by default because they are strickly +reserved for bindings added by the user. See *note Global Bindings::, +if you want to explicitly opt-in to the recommended key bindings. - Magit also provides a context menu and other mouse commands, see -*note Mouse Support::. + Magit also provides context menus and other mouse commands, see *note +Mouse Support::. It is not necessary that you do so now, but if you stick with Magit, then it is highly recommended that you read the next section too. @@ -1042,7 +1052,7 @@ File: magit.info, Node: Automatic Reverting of File-Visiting Buffers, Prev: Au By default Magit automatically reverts buffers that are visiting files that are being tracked in a Git repository, after they have changed on disk. When using Magit one often changes files on disk by running Git, -i.e. "outside Emacs", making this a rather important feature. +i.e., "outside Emacs", making this a rather important feature. For example, if you discard a change in the status buffer, then that is done by running ‘git apply --reverse ...’, and Emacs considers the @@ -1148,7 +1158,7 @@ Risk of Reverting Automatically For the vast majority of users, automatically reverting file-visiting buffers after they have changed on disk is harmless. - If a buffer is modified (i.e. it contains changes that haven’t been + If a buffer is modified (i.e., it contains changes that haven’t been saved yet), then Emacs will refuse to automatically revert it. If you save a previously modified buffer, then that results in what is seen by Git as an uncommitted change. Git will then refuse to carry out any @@ -1466,7 +1476,7 @@ File: magit.info, Node: Section Hooks, Next: Section Types and Values, Prev: Which sections are inserted into certain buffers is controlled with hooks. This includes the status and the refs buffers. For other -buffers, e.g. log and diff buffers, this is not possible. The command +buffers, e.g., log and diff buffers, this is not possible. The command ‘magit-describe-section’ can be used to see which hook (if any) was responsible for inserting the section at point. @@ -1571,17 +1581,20 @@ library ‘magit-key-mode’. Transient is documented in *note (transient)Top::. -‘C-c C-c’ (‘magit-dispatch’) +‘C-x M-g’ (‘magit-dispatch’) +‘C-c g’ (‘magit-dispatch’) This transient prefix command binds most of Magit’s other prefix commands as suffix commands and displays them in a temporary buffer until one of them is invoked. Invoking such a sub-prefix causes the suffixes of that command to be bound and displayed instead of those of ‘magit-dispatch’. - This command is also, or especially, useful outside Magit buffers, so -you should setup a global binding: - - (global-set-key (kbd "C-x M-g") 'magit-dispatch) + This command is also, or especially, useful outside Magit buffers, + so Magit by default binds it to ‘C-c M-g’ in the global keymap. + ‘C-c g’ would be a better binding, but we cannot use that by + default, because that key sequence is reserved for the user. See + *note Global Bindings:: to learn more default and recommended key + bindings.  File: magit.info, Node: Transient Arguments and Buffer Variables, Next: Completion Confirmation and the Selection, Prev: Transient Commands, Up: Interface Concepts @@ -1658,7 +1671,7 @@ by default. -- User Option: magit-direct-use-buffer-arguments This option controls whether certain commands, when invoked - directly (i.e. not as the suffix of a transient prefix command), + directly (i.e., not as the suffix of a transient prefix command), use the arguments that are currently active in the buffer that they are about to update. The alternative is to use the default value for these arguments, which might change the arguments that are used @@ -1760,7 +1773,7 @@ telling Magit to ask fewer questions. • Applying changes: - • ‘discard’ Discarding one or more changes (i.e. hunks or + • ‘discard’ Discarding one or more changes (i.e., hunks or the complete diff for a file) loses that change, obviously. @@ -1989,7 +2002,7 @@ begins and ends on the same line. For a region to qualify as a Magit selection, it must begin in the heading of one section and end in the heading of a sibling section. Note that if the end of the region is at the very beginning of section -heading (i.e. at the very beginning of a line) then that section is +heading (i.e., at the very beginning of a line) then that section is considered to be *inside* the selection. This is not consistent with how the region is normally treated in @@ -2186,8 +2199,8 @@ File: magit.info, Node: Viewing Git Output, Next: Git Process Status, Up: Run 4.7.1 Viewing Git Output ------------------------ -Magit runs Git either for side-effects (e.g. when pushing) or to get -some value (e.g. the name of the current branch). +Magit runs Git either for side-effects (e.g., when pushing) or to get +some value (e.g., the name of the current branch). When Git is run for side-effects, the process output is logged in a per-repository log buffer, which can be consulted using the @@ -2432,7 +2445,7 @@ next two with manipulating and transferring it. Then follows a section about miscellaneous functionality, which cannot easily be fit into this distinction. - Of course other distinctions make sense too, e.g. Git’s distinction + Of course other distinctions make sense too, e.g., Git’s distinction between porcelain and plumbing commands, which for the most part is equivalent to Emacs’ distinction between interactive commands and non-interactive functions. All of the sections mentioned before are @@ -2457,7 +2470,7 @@ File: magit.info, Node: Status Buffer, Next: Repository List, Up: Inspecting 5.1 Status Buffer ================= -While other Magit buffers contain e.g. one particular diff or one +While other Magit buffers contain, e.g., one particular diff or one particular log, the status buffer contains the diffs for staged and unstaged changes, logs for unpushed and unpulled commits, lists of stashes and untracked files, and information related to the current @@ -2695,13 +2708,13 @@ default the following functions are also members of that hook: -- Function: magit-insert-unpulled-cherries Insert section showing unpulled commits. Like ‘magit-insert-unpulled-commits’ but prefix each commit that has not - been applied yet (i.e. a commit with a patch-id not shared with + been applied yet (i.e., a commit with a patch-id not shared with any local commit) with "+", and all others with "-". -- Function: magit-insert-unpushed-cherries Insert section showing unpushed commits. Like ‘magit-insert-unpushed-commits’ but prefix each commit which has - not been applied to upstream yet (i.e. a commit with a patch-id + not been applied to upstream yet (i.e., a commit with a patch-id not shared with any upstream commit) with "+" and all others with "-". @@ -2880,9 +2893,8 @@ File: magit.info, Node: Repository List, Next: Logging, Prev: Status Buffer, -- Command: magit-list-repositories This command displays a list of repositories in a separate buffer. - The options ‘magit-repository-directories’ and - ‘magit-repository-directories-depth’ control which repositories are - displayed. + The option ‘magit-repository-directories’ controls which + repositories are displayed. -- User Option: magit-repolist-columns This option controls what columns are displayed by the command @@ -2901,14 +2913,14 @@ File: magit.info, Node: Repository List, Next: Logging, Prev: Status Buffer, docstring of ‘tabulated-list--get-sort’. Alternatively ‘<’ and ‘magit-repolist-version<’ can be used as those functions are automatically replaced with functions that satisfy the interface. - Set ‘:sort’ to ‘nil’ to inhibit sorting; if unspecifed, then the + Set ‘:sort’ to ‘nil’ to inhibit sorting; if unspecified, then the column is sortable using the default sorter. You may wish to display a range of numeric columns using just one character per column and without any padding between columns, in - which case you should use an appropriat HEADER, set WIDTH to 1, and - set ‘:pad-right’ to 9. ‘+’ is substituted for numbers higher than - 9. + which case you should use an appropriate HEADER, set WIDTH to 1, + and set ‘:pad-right’ to 9. ‘+’ is substituted for numbers higher + than 9. The following functions can be added to the above option: @@ -2948,6 +2960,13 @@ The following functions can be added to the above option: Only the first one of these that applies is shown. + -- Function: magit-repolist-column-flags + This functions insert all flags as specified by + ‘magit-repolist-column-flag-alist’. + + This is an alternative to function ‘magit-repolist-column-flag’, + which only lists the first one found. + -- Function: magit-repolist-column-unpulled-from-upstream This function inserts the number of upstream commits not in the current branch. @@ -3374,7 +3393,7 @@ File: magit.info, Node: Cherries, Prev: Reflog, Up: Logging Cherries are commits that haven’t been applied upstream (yet), and are usually visualized using a log. Each commit is prefixed with ‘-’ if it -has an equivalent in the upstream and ‘+’ if it does not, i.e. if it is +has an equivalent in the upstream and ‘+’ if it does not, i.e., if it is a cherry. The command ‘magit-cherry’ shows cherries for a single branch, but @@ -4297,6 +4316,8 @@ of a file that is stored in a certain commit). Actually it provides several *groups* of such commands and the several *variants* within each group. + Also see *note Commands for Buffers Visiting Files::. + * Menu: * General-Purpose Visit Commands:: @@ -4343,14 +4364,14 @@ These commands can only be used when point is inside a diff. being visited. The visited version depends on what changes the diff is about. - 1. If the diff shows uncommitted changes (i.e. staged or + 1. If the diff shows uncommitted changes (i.e., staged or unstaged changes), then visit the file in the working tree - (i.e. the same "real" file that ‘find-file’ would visit. In - all other cases visit a "blob" (i.e. the version of a file as + (i.e., the same "real" file that ‘find-file’ would visit. In + all other cases visit a "blob" (i.e., the version of a file as stored in some commit). 2. If point is on a removed line, then visit the blob for the - first parent of the commit that removed that line, i.e. the + first parent of the commit that removed that line, i.e., the last commit where that line still exists. 3. If point is on an added or context line, then visit the blob @@ -4409,15 +4430,30 @@ File: magit.info, Node: Blaming, Prev: Visiting Files and Blobs, Up: Inspecti Also see *note (gitman)git-blame::. - To start blaming invoke the ‘magit-file-dispatch’ transient prefix -command by pressing ‘C-c M-g’. - - The blaming suffix commands can be invoked from the dispatch -transient. However if you want to set an infix argument, then you have -to enter the blaming sub-transient first. - - The key bindings shown below assume that you enter the dispatch -transient using the default binding. + To start blaming, invoke the ‘magit-file-dispatch’ transient prefix +command. When using the default key bindings, that can be done by +pressing ‘C-c M-g’. When using the recommended bindings, this command +is instead bound to ‘C-c f’. Also see *note Global Bindings::. + + The blaming suffix commands can be invoked directly from the file +dispatch transient. However if you want to set an infix argument, then +you have to enter the blaming sub-prefix first. + +‘C-c f B’ (‘magit-blame’) +‘C-c f b’ (‘magit-blame-addition’) +‘C-c f B b’ +‘C-c f r’ (‘magit-blame-removal’) +‘C-c f B r’ +‘C-c f f’ (‘magit-blame-reverse’) +‘C-c f B f’ +‘C-c f e’ (‘magit-blame-echo’) +‘C-c f B e’ +‘C-c f q’ (‘magit-blame-quit’) +‘C-c f B q’ + Each of these commands is documented individually right below, + alongside their default key bindings. The bindings shown above are + the recommended bindings, which you can enable by following the + instructions in *note Global Bindings::. ‘C-c M-g B’ (‘magit-blame’) This transient prefix command binds the following suffix commands @@ -4471,6 +4507,11 @@ enabled and Read-Only mode is not enabled. These commands are also available in other buffers; here only the behavior is described that is relevant in file-visiting buffers that are being blamed. +‘C-c M-g q’ (‘magit-blame-quit’) +‘C-c M-g B q’ + This command turns off Magit-Blame mode. If the buffer was created + during a recursive blame, then it also kills the buffer. + ‘’ (‘magit-show-commit’) This command shows the commit that last touched the line at point. @@ -4891,7 +4932,7 @@ variants. the change to be applied to the index as well. With a prefix argument all apply variants attempt a 3-way merge when -appropriate (i.e. when ‘git apply’ is used internally). +appropriate (i.e., when ‘git apply’ is used internally).  File: magit.info, Node: Committing, Next: Branching, Prev: Applying, Up: Manipulating @@ -5125,8 +5166,8 @@ Using the Revision Stack When reading the revision from the minibuffer, then it might not be possible to guess the correct repository. When this command is - called inside a repository (e.g. while composing a commit - message), then that repository is used. Otherwise (e.g. while + called inside a repository (e.g., while composing a commit + message), then that repository is used. Otherwise (e.g., while composing an email) then the repository recorded for the top element of the stack is used (even though we insert another revision). If not called inside a repository and with an empty @@ -5383,7 +5424,7 @@ File: magit.info, Node: Branch Commands, Next: Branch Git Variables, Prev: Th The transient prefix command ‘magit-branch’ is used to create and checkout branches, and to make changes to existing branches. It is not -used to fetch, pull, merge, rebase, or push branches, i.e. this command +used to fetch, pull, merge, rebase, or push branches, i.e., this command deals with branches themselves, not with the commits reachable from them. Those features are available from separate transient command. @@ -5560,7 +5601,7 @@ them. Those features are available from separate transient command. them invalid as a branch name. Recommended characters to use to trigger interpretation as a regexp are "*" and "^". Some other characters which you might expect to be invalid, actually are not, - e.g. ".+$" are all perfectly valid. More precisely, if ‘git + e.g., ".+$" are all perfectly valid. More precisely, if ‘git check-ref-format --branch STRING’ exits with a non-zero status, then treat STRING as a regexp. @@ -5582,7 +5623,7 @@ them. Those features are available from separate transient command. upstream when branching a remote branch. When creating a local branch from an ephemeral branch located on a - remote, e.g. a feature or hotfix branch, then that remote branch + remote, e.g., a feature or hotfix branch, then that remote branch should usually not be used as the upstream branch, since the push-remote already allows accessing it and having both the upstream and the push-remote reference the same related branch @@ -5695,7 +5736,7 @@ These variables can be set from the transient prefix command -- Variable: branch.NAME.description This variable can be used to describe the branch named NAME. That - description is used e.g. when turning the branch into a series of + description is used, e.g., when turning the branch into a series of patches. The following variables specify defaults which are used if the above @@ -6252,7 +6293,7 @@ the commits that still have to be applied. The commits are split in two halves. When rebase stops at a commit, either because the user has to deal with a conflict or because s/he explicitly requested that rebase stops at that commit, then point is -placed on the commit that separates the two groups, i.e. on ‘HEAD’. +placed on the commit that separates the two groups, i.e., on ‘HEAD’. The commits above it have not been applied yet, while the ‘HEAD’ and the commits below it have already been applied. In between these two groups of applied and yet-to-be applied commits, there sometimes is a commit @@ -6275,14 +6316,14 @@ shown in different colors to indicate the status of the commits. • The blue commit is the ‘HEAD’ commit. • The green commit is the commit the rebase sequence stopped at. If - this is the same commit as ‘HEAD’ (e.g. because you haven’t done + this is the same commit as ‘HEAD’ (e.g., because you haven’t done anything yet after rebase stopped at the commit, then this commit is shown in blue, not green). There can only be a green *and* a blue commit at the same time, if you create one or more new commits after rebase stops at a commit. • Red commits have been dropped. They are shown for reference only, - e.g. to make it easier to diff. + e.g., to make it easier to diff. Of course these colors are subject to the color-theme in use. @@ -6417,7 +6458,7 @@ commits which have already been applied. (1) The patch-id is a hash of the _changes_ introduced by a commit. It differs from the hash of the commit itself, which is a hash of the -result of applying that change (i.e. the resulting trees and blobs) as +result of applying that change (i.e., the resulting trees and blobs) as well as author and committer information, the commit message, and the hashes of the parents of the commit. The patch-id hash on the other hand is created only from the added and removed lines, even line numbers @@ -6551,7 +6592,7 @@ features the following suffix commands. When a cherry-pick or revert is in progress, then the transient instead features the following suffix commands. -‘V A’ (‘magit-sequence-continue’) +‘V V’ (‘magit-sequence-continue’) Resume the current cherry-pick or revert sequence. ‘V s’ (‘magit-sequence-skip’) @@ -6678,13 +6719,14 @@ Also see *note (gitman)git-stash::. Show all diffs of a stash in a buffer. ‘z b’ (‘magit-stash-branch’) - Create and checkout a new BRANCH from STASH. The branch starts at - the commit that was current when the stash was created. + Create and checkout a new branch from an existing stash. The new + branch starts at the commit that was current when the stash was + created. ‘z B’ (‘magit-stash-branch-here’) - Create and checkout a new BRANCH using ‘magit-branch’ with the - current branch or ‘HEAD’ as the starting-point. Then apply STASH, - dropping it if it applies cleanly. + Create and checkout a new branch from an existing stash. Use the + current branch or ‘HEAD’ as the starting-point of the new branch. + Then apply the stash, dropping it if it applies cleanly. ‘z f’ (‘magit-stash-format-patch’) Create a patch from STASH. @@ -7321,14 +7363,14 @@ Sections::. docstring of ‘tabulated-list--get-sort’. Alternatively ‘<’ and ‘magit-repolist-version<’ can be used as those functions are automatically replaced with functions that satisfy the interface. - Set ‘:sort’ to ‘nil’ to inhibit sorting; if unspecifed, then the + Set ‘:sort’ to ‘nil’ to inhibit sorting; if unspecified, then the column is sortable using the default sorter. You may wish to display a range of numeric columns using just one character per column and without any padding between columns, in - which case you should use an appropriat HEADER, set WIDTH to 1, and - set ‘:pad-right’ to 9. ‘+’ is substituted for numbers higher than - 9. + which case you should use an appropriate HEADER, set WIDTH to 1, + and set ‘:pad-right’ to 9. ‘+’ is substituted for numbers higher + than 9.  File: magit.info, Node: Submodule Transient, Prev: Listing Submodules, Up: Submodules @@ -7628,7 +7670,7 @@ nothing is saved before the first commit has been created). Two separate work-in-progress references are used to track the state of the index and of the working tree: ‘refs/wip/index/’ and ‘refs/wip/wtree/’, where ‘’ is the full ref of the -current branch, e.g. ‘refs/heads/master’. When the ‘HEAD’ is detached +current branch, e.g., ‘refs/heads/master’. When the ‘HEAD’ is detached then ‘HEAD’ is used in place of ‘’. Checking out another branch (or detaching ‘HEAD’) causes the use of @@ -7636,7 +7678,7 @@ different wip refs for subsequent changes. -- User Option: magit-wip-mode When this mode is enabled, then uncommitted changes are committed - to dedicated work-in-progress refs whenever appropriate (i.e. when + to dedicated work-in-progress refs whenever appropriate (i.e., when dataloss would be a possibility otherwise). Setting this variable directly does not take effect; either use the @@ -7788,7 +7830,7 @@ use the Custom interface to do so or call the respective mode functions. committed to the working tree wip ref for the current branch. -- User Option: magit-wip-after-apply-mode - When this mode is enabled, then applying (i.e. staging, unstaging, + When this mode is enabled, then applying (i.e., staging, unstaging, discarding, reversing, and regularly applying) a change to a file tracked in a Git repository causes its current state to be committed to the index and/or working tree wip refs for the current @@ -7838,40 +7880,89 @@ File: magit.info, Node: Commands for Buffers Visiting Files, Next: Minor Mode 8.10 Commands for Buffers Visiting Files ======================================== -Magit defines a few global key bindings unless the user sets -‘magit-define-global-key-bindings’ to ‘nil’. This includes binding ‘C-c -M-g’ to ‘magit-file-dispatch’. ‘C-c g’ would be a much better binding -but the ‘C-c ’ namespace is reserved for users, meaning that -packages are not allowed to use it. If you want to use ‘C-c g’, then -you have to add that binding yourself. Also see *note Default -Bindings:: and *note (elisp)Key Binding Conventions::. - - If you want a better binding, you have to add it yourself: - - (global-set-key (kbd "C-c g") 'magit-file-dispatch) - - The key bindings shown below assume that you have not improved the -binding for ‘magit-file-dispatch’. +By default Magit defines a few global key bindings. These bindings are +a compromise between providing no bindings at all and providing the +better bindings I would have liked to use instead. Magit cannot provide +the set of recommended bindings by default because those key sequences +are stricktly reserved for bindings added by the user. Also see *note +Global Bindings:: and *note (elisp)Key Binding Conventions::. + + To use the recommended bindings, add this to your init file and +restart Emacs. + + (setq magit-define-global-key-bindings 'recommended) + + If you don’t want Magit to add any bindings to the global keymap at +all, add this to your init file and restart Emacs. + + (setq magit-define-global-key-bindings nil) + +‘C-c f’ (‘magit-file-dispatch’) +‘C-c f s’ (‘magit-stage-file’) +‘C-c f s’ (‘magit-stage-buffer-file’) +‘C-c f u’ (‘magit-unstage-file’) +‘C-c f u’ (‘magit-unstage-buffer-file’) +‘C-c f , x’ (‘magit-file-untrack’) +‘C-c f , r’ (‘magit-file-rename’) +‘C-c f , k’ (‘magit-file-delete’) +‘C-c f , c’ (‘magit-file-checkout’) +‘C-c f D’ (‘magit-diff’) +‘C-c f d’ (‘magit-diff-buffer-file’) +‘C-c f L’ (‘magit-log’) +‘C-c f l’ (‘magit-log-buffer-file’) +‘C-c f t’ (‘magit-log-trace-definition’) +‘C-c f M’ (‘magit-log-merged’) +‘C-c f B’ (‘magit-blame’) +‘C-c f b’ (‘magit-blame-additions’) +‘C-c f r’ (‘magit-blame-removal’) +‘C-c f f’ (‘magit-blame-reverse’) +‘C-c f m’ (‘magit-blame-echo’) +‘C-c f q’ (‘magit-blame-quit’) +‘C-c f p’ (‘magit-blob-previous’) +‘C-c f n’ (‘magit-blob-next’) +‘C-c f v’ (‘magit-find-file’) +‘C-c f V’ (‘magit-blob-visit-file’) +‘C-c f g’ (‘magit-status-here’) +‘C-c f G’ (‘magit-display-repository-buffer’) +‘C-c f c’ (‘magit-commit’) +‘C-c f e’ (‘magit-edit-line-commit’) + Each of these commands is documented individually right below, + alongside their default key bindings. The bindings shown above are + the recommended bindings, which you can enable by following the + instructions further up. ‘C-c M-g’ (‘magit-file-dispatch’) This transient prefix command binds the following suffix commands and displays them in a temporary buffer until a suffix is invoked. - When invoked in a buffer that does not visit a file, then it falls - back to regular ‘magit-dispatch’. - ‘C-c M-g s’ (‘magit-stage-file’) +‘C-c M-g s’ (‘magit-stage-buffer-file’) Stage all changes to the file being visited in the current buffer. + When not visiting a file, then the first command is used, which + prompts for a file. ‘C-c M-g u’ (‘magit-unstage-file’) +‘C-c M-g u’ (‘magit-unstage-buffer-file’) Unstage all changes to the file being visited in the current - buffer. + buffer. When not visiting a file, then the first command is used, + which prompts for a file. -‘C-c M-g c’ (‘magit-commit’) - This transient prefix command binds the following suffix commands - along with the appropriate infix arguments and displays them in a - temporary buffer until a suffix is invoked. See *note Initiating a - Commit::. +‘C-c M-g , x’ (‘magit-file-untrack’) + This command untracks a file read from the user, defaulting to the + visited file. + +‘C-c M-g , r’ (‘magit-file-rename’) + This command renames a file read from the user, defaulting to the + visited file. + +‘C-c M-g , k’ (‘magit-file-delete’) + This command deletes a file read from the user, defaulting to the + visited file. + +‘C-c M-g , c’ (‘magit-file-checkout’) + This command updates a file in the working tree and index to the + contents from a revision. Both the revision and file are read from + the user. ‘C-c M-g D’ (‘magit-diff’) This transient prefix command binds several diff suffix commands @@ -7907,13 +7998,18 @@ binding for ‘magit-file-dispatch’. or when ‘--follow’ is an active log argument. When the region is active, the log is restricted to the selected line range. -‘C-c M-g t’ (‘magit-log-trace-definition’) - This command shows the log for the definition at point. - -- User Option: magit-log-buffer-file-locked This option controls whether ‘magit-log-buffer-file’ uses a dedicated buffer. See *note Modes and Buffers::. +‘C-c M-g t’ (‘magit-log-trace-definition’) + This command shows the log for the definition at point. + +‘C-c M-g M’ (‘magit-log-merged’) + This command reads a commit and a branch in shows a log concerning + the merge of the former into the latter. This shows multiple + commits even in case of a fast-forward merge. + ‘C-c M-g B’ (‘magit-blame’) This transient prefix command binds all blaming suffix commands along with the appropriate infix arguments and displays them in a @@ -7922,43 +8018,51 @@ binding for ‘magit-file-dispatch’. For more information about this and the following commands also see *note Blaming::. - In addition to the ‘magit-blame’ sub-transient, the dispatch -transient also binds several blaming suffix commands directly. See -*note Blaming:: for information about those commands and bindings. + In addition to the ‘magit-blame’ sub-transient, the dispatch + transient also binds several blaming suffix commands directly. See + *note Blaming:: for information about those commands and bindings. -‘C-c M-g e’ (‘magit-edit-line-commit’) - This command makes the commit editable that added the current line. +‘C-c M-g p’ (‘magit-blob-previous’) + This command visits the previous blob which modified the current + file. - With a prefix argument it makes the commit editable that removes - the line, if any. The commit is determined using ‘git blame’ and - made editable using ‘git rebase --interactive’ if it is reachable - from ‘HEAD’, or by checking out the commit (or a branch that points - at it) otherwise. +‘C-c M-g n’ (‘magit-blob-next’) + This command visits the next blob which modified the current file. -‘C-c M-g p’ (‘magit-blob-previous’) - Visit the previous blob which modified the current file. +‘C-c M-g v’ (‘magit-find-file’) + This command reads a revision and file and visits the respective + blob. - There are a few additional commands that operate on a single file but -are not enabled in the file transient command by default: +‘C-c M-g V’ (‘magit-blob-visit-file’) + This command visits the file from the working tree, corresponding + to the current blob. When visiting a blob or the version from the + index, then it goes to the same location in the respective file in + the working tree. - -- Command: magit-file-rename - This command renames a file read from the user. +‘C-c M-g g’ (‘magit-status-here’) + This command displays the status of the current repository in a + buffer, like ‘magit-status’ does. Additionally it tries to go to + the position in that buffer, which corresponds to the position in + the current file-visiting buffer (if any). - -- Command: magit-file-delete - This command deletes a file read from the user. +‘C-c M-g G’ (‘magit-display-repository-buffer’) + This command reads and displays a Magit buffer belonging to the + current repository, without refreshing it. - -- Command: magit-file-untrack - This command untracks a file read from the user. +‘C-c M-g c’ (‘magit-commit’) + This transient prefix command binds the following suffix commands + along with the appropriate infix arguments and displays them in a + temporary buffer until a suffix is invoked. See *note Initiating a + Commit::. - -- Command: magit-file-checkout - This command updates a file in the working tree and index to the - contents from a revision. Both the revision and file are read from - the user. +‘C-c M-g e’ (‘magit-edit-line-commit’) + This command makes the commit editable that added the current line. - To enable them invoke the transient (‘C-c M-g’), enter "edit mode" -(‘C-x l’), set the "transient level" (‘C-x l’ again), enter ‘5’, and -leave edit mode (‘C-g’). Also see *note (transient)Enabling and -Disabling Suffixes::. + With a prefix argument it makes the commit editable that removes + the line, if any. The commit is determined using ‘git blame’ and + made editable using ‘git rebase --interactive’ if it is reachable + from ‘HEAD’, or by checking out the commit (or a branch that points + at it) otherwise.  File: magit.info, Node: Minor Mode for Buffers Visiting Blobs, Prev: Commands for Buffers Visiting Files, Up: Miscellaneous @@ -8058,7 +8162,7 @@ can disable the respective section inserters just for that repository: If you want to apply the same settings to several, but not all, repositories then keeping the repository-local config files in sync would quickly become annoying. To avoid that you can create config -files for certain classes of repositories (e.g. "huge repositories") +files for certain classes of repositories (e.g., "huge repositories") and then include those files in the per-repository config files. For example: @@ -8086,14 +8190,14 @@ File: magit.info, Node: Essential Settings, Prev: Per-Repository Configuration 9.2 Essential Settings ====================== -The next two sections list and discuss several variables that many users -might want to customize, for safety and/or performance reasons. +The next three sections list and discuss several variables that many +users might want to customize, for safety and/or performance reasons. * Menu: * Safety:: * Performance:: -* Default Bindings:: +* Global Bindings::  File: magit.info, Node: Safety, Next: Performance, Up: Essential Settings @@ -8133,7 +8237,7 @@ to make an informed decision you should see *note Risk of Reverting Automatically::.  -File: magit.info, Node: Performance, Next: Default Bindings, Prev: Safety, Up: Essential Settings +File: magit.info, Node: Performance, Next: Global Bindings, Prev: Safety, Up: Essential Settings 9.2.2 Performance ----------------- @@ -8347,53 +8451,56 @@ notice a notable difference try using the latter as  -File: magit.info, Node: Default Bindings, Prev: Performance, Up: Essential Settings +File: magit.info, Node: Global Bindings, Prev: Performance, Up: Essential Settings -9.2.3 Default Bindings ----------------------- +9.2.3 Global Bindings +--------------------- -- User Option: magit-define-global-key-bindings - This option controls whether some Magit commands are automatically - bound in the global keymap even before Magit is used for the first - time in the current session. + This option controls which set of Magit key bindings, if any, may + be added to the global keymap, even before Magit is first used in + the current Emacs session. - If this variable is non-nil, which it is by default, then the - following bindings may be added to the global keymap. + • If the value is ‘nil’, no bindings are added. - ‘C-x g’ ‘magit-status’ - ‘C-x M-g’ ‘magit-dispatch’ - ‘C-c M-g’ ‘magit-file-dispatch’ + • If ‘default’, maybe add: - These bindings may be added when ‘after-init-hook’ is run. Each - binding is added if and only if at that time no other key is bound - to the same command and no other command is bound to the same key. - In other words we try to avoid adding bindings that are - unnecessary, as well as bindings that conflict with other bindings. + ‘C-x g’ ‘magit-status’ + ‘C-x M-g’ ‘magit-dispatch’ + ‘C-c M-g’ ‘magit-file-dispatch’ - Adding the above bindings is delayed until ‘after-init-hook’ is - called to allow users to set the variable anywhere in their init - file (without having to make sure to do so before ‘magit’ is loaded - or autoloaded) and to increase the likelihood that all the - potentially conflicting user bindings have already been added. + • If ‘recommended’, maybe add: + + ‘C-x g’ ‘magit-status’ + ‘C-c g’ ‘magit-dispatch’ + ‘C-c f’ ‘magit-file-dispatch’ + + These bindings are strongly recommended, but we cannot use + them by default, because the ‘C-c ’ namespace is + strictly reserved for bindings added by the user (see *note + (elisp)Key Binding Conventions::). + + The bindings in the chosen set may be added when ‘after-init-hook’ + is run. Each binding is added if, and only if, at that time no + other key is bound to the same command, and no other command is + bound to the same key. In other words we try to avoid adding + bindings that are unnecessary, as well as bindings that conflict + with other bindings. + + Adding these bindings is delayed until ‘after-init-hook’ is run to + allow users to set the variable anywhere in their init file + (without having to make sure to do so before ‘magit’ is loaded or + autoloaded) and to increase the likelihood that all the potentially + conflicting user bindings have already been added. To set this variable use either ‘setq’ or the Custom interface. Do not use the function ‘customize-set-variable’ because doing that - would cause Magit to be loaded immediately when that form is + would cause Magit to be loaded immediately, when that form is evaluated (this differs from ‘custom-set-variables’, which doesn’t load the libraries that define the customized variables). - Setting this variable to nil has no effect if that is done after - the key bindings have already been added. - - We recommend that you bind ‘C-c g’ instead of ‘C-c M-g’ to - ‘magit-file-dispatch’. The former is a much better binding but the - ‘C-c ’ namespace is strictly reserved for users; preventing - Magit from using it by default. - - (global-set-key (kbd "C-c g") 'magit-file-dispatch) - - Also see *note Commands for Buffers Visiting Files:: and *note - (elisp)Key Binding Conventions::. + Setting this variable has no effect if ‘after-init-hook’ has + already been run.  File: magit.info, Node: Plumbing, Next: FAQ, Prev: Customizing, Up: Top @@ -8520,7 +8627,7 @@ side-effects, but that should be avoided. during the call and ensures unix eol conversion. If an error occurs when using one of the above functions, then that -is usually due to a bug, i.e. using an argument which is not actually +is usually due to a bug, i.e., using an argument which is not actually supported. Such errors are usually not reported, but when they occur we need to be able to debug them. @@ -8554,7 +8661,7 @@ which can be shown using ‘$’ from a Magit buffer or ‘M-x magit-process’ elsewhere. These functions can have an effect in two distinct ways. Firstly, -running git may change something, i.e. create or push a new commit. +running git may change something, i.e., create or push a new commit. Secondly, that change may require that Magit buffers are refreshed to reflect the changed state of the repository. But refreshing isn’t always desirable, so only some of these functions do perform such a @@ -8700,7 +8807,7 @@ File: magit.info, Node: Creating Sections, Next: Section Selection, Up: Secti is required when acting on the section. When optional HIDE is non-nil collapse the section body by default, - i.e. when first creating the section, but not when refreshing the + i.e., when first creating the section, but not when refreshing the buffer. Otherwise, expand it by default. This can be overwritten using ‘magit-section-set-visibility-hook’. When a section is recreated during a refresh, then the visibility of predecessor is @@ -8921,7 +9028,7 @@ File: magit.info, Node: Matching Sections, Prev: Section Selection, Up: Secti ignoring the sections selected by the region. Otherwise return the scope of the current section, or if the region is active and selects a valid group of diff related sections, the type of these - sections, i.e. ‘hunks’ or ‘files’. If SECTION (or if the current + sections, i.e., ‘hunks’ or ‘files’. If SECTION (or if the current section that is nil) is a ‘hunk’ section and the region starts and ends inside the body of a that section, then the type is ‘region’. @@ -9068,7 +9175,7 @@ lines within a single hunk section. In all other cases, the section is considered invalid and Magit won’t act on it. But such invalid sections happen, either because the user has not moved point enough yet to make it valid or because she wants to use a non-magit command to act on the -region, e.g. ‘kill-region’. +region, e.g., ‘kill-region’. So using the regular ‘region’ face for invalid sections is a feature. It tells the user that Magit won’t be able to act on it. It’s @@ -9099,7 +9206,7 @@ idea for section headings to always be bold, but only for sections that have subsections). When there is a valid region selecting diff-related sibling sections, -i.e. multiple files or hunks, then the bodies of all these sections use +i.e., multiple files or hunks, then the bodies of all these sections use the respective highlight faces, but additionally the headings instead use one of the faces ‘magit-diff-file-heading-selection’ or ‘magit-diff-hunk-heading-selection’. These faces have to be different @@ -9124,7 +9231,7 @@ lines, lines added by us, and lines added by them. Also make sure the respective added, removed, and context faces use approximately the same saturation for both the highlighted and unhighlighted variants. Also make sure the file and diff headings work nicely with context lines -(e.g. make them look different). Line faces should set both the +(e.g., make them look different). Line faces should set both the foreground and the background color. For example, for added lines use two different greens. @@ -9156,7 +9263,7 @@ Appendix A FAQ ************** The next two nodes lists frequently asked questions. For a list of -frequently *and recently* asked questions, i.e. questions that haven’t +frequently *and recently* asked questions, i.e., questions that haven’t made it into the manual yet, see . @@ -9370,9 +9477,9 @@ File: magit.info, Node: Expanding a file to show the diff causes it to disappea A.2.6 Expanding a file to show the diff causes it to disappear -------------------------------------------------------------- -This is probably caused by a change of a ‘diff.*’ Git variable. You -probably set that variable for a reason, and should therefore only undo -that setting in Magit by customizing ‘magit-git-global-arguments’. +This is probably caused by a customization of a ‘diff.*’ Git variable. +You probably set that variable for a reason, and should therefore only +undo that setting in Magit by customizing ‘magit-git-global-arguments’.  File: magit.info, Node: Point is wrong in the COMMIT_EDITMSG buffer, Next: The mode-line information isn't always up-to-date, Prev: Expanding a file to show the diff causes it to disappear, Up: FAQ - Issues and Errors @@ -9383,11 +9490,11 @@ A.2.7 Point is wrong in the ‘COMMIT_EDITMSG’ buffer Neither Magit nor ‘git-commit‘ fiddle with point in the buffer used to write commit messages, so something else must be doing it. - You have probably globally enabled a mode which does restore point in + You have probably globally enabled a mode which restores point in file-visiting buffers. It might be a bit surprising, but when you write a commit message, then you are actually editing a file. - So you have to figure out which package is doing. ‘saveplace’, + So you have to figure out which package is doing it. ‘saveplace’, ‘pointback’, and ‘session’ are likely candidates. These snippets might help: @@ -9434,7 +9541,7 @@ Or more generally, ambiguous refnames break SOMETHING. the names remain unique when those prefixes are stripped). We consider ambiguous refnames unsupported and recommend that you use a non-ambiguous naming scheme. However, if you do work with a repository -that has ambiguous refnames, please report any issues you encounter so +that has ambiguous refnames, please report any issues you encounter, so that we can investigate whether there is a simple fix.  @@ -9530,7 +9637,7 @@ Magit used to use Magit-Popup to implement the transient popup menus. Now it used Transient instead, which is Magit-Popup’s successor. In the older Magit-Popup menus, it was possible to save user settings -(e.g. setting the gpg signing key for commits) by using ‘C-c C-c’ in +(e.g., setting the gpg signing key for commits) by using ‘C-c C-c’ in the popup buffer. This would dismiss the popup, but save the settings as the defaults for future popups. @@ -9652,7 +9759,7 @@ Appendix C Keystroke Index * 2: Section Visibility. (line 26) * 3: Section Visibility. (line 26) * 4: Section Visibility. (line 26) -* 5: Repository List. (line 109) +* 5: Repository List. (line 115) * :: Running Git Manually. (line 25) * =: Log Buffer. (line 59) @@ -9675,7 +9782,7 @@ Appendix C Keystroke Index * A s: Cherry Picking. (line 72) * A s <1>: Cherry Picking. (line 88) * B: Bisecting. (line 9) -* b: Blaming. (line 95) +* b: Blaming. (line 115) * b <1>: Branch Commands. (line 13) * b <2>: Editing Rebase Sequences. (line 70) @@ -9696,7 +9803,7 @@ Appendix C Keystroke Index * b s: Branch Commands. (line 91) * b S: Branch Commands. (line 118) * b x: Branch Commands. (line 123) -* c: Blaming. (line 121) +* c: Blaming. (line 141) * C: Cloning Repository. (line 20) * c <1>: Initiating a Commit. (line 9) * c <2>: Editing Rebase Sequences. @@ -9724,11 +9831,10 @@ Appendix C Keystroke Index (line 16) * C-c C-b: Log Buffer. (line 20) * C-c C-b <1>: Refreshing Diffs. (line 84) -* C-c C-c: Transient Commands. (line 19) -* C-c C-c <1>: Select from Log. (line 21) -* C-c C-c <2>: Editing Commit Messages. +* C-c C-c: Select from Log. (line 21) +* C-c C-c <1>: Editing Commit Messages. (line 18) -* C-c C-c <3>: Editing Rebase Sequences. +* C-c C-c <2>: Editing Rebase Sequences. (line 7) * C-c C-d: Refreshing Diffs. (line 75) * C-c C-d <1>: Editing Commit Messages. @@ -9759,45 +9865,142 @@ Appendix C Keystroke Index (line 25) * C-c C-w: Using the Revision Stack. (line 7) +* C-c f: Commands for Buffers Visiting Files. + (line 52) +* C-c f , c: Commands for Buffers Visiting Files. + (line 52) +* C-c f , k: Commands for Buffers Visiting Files. + (line 52) +* C-c f , r: Commands for Buffers Visiting Files. + (line 52) +* C-c f , x: Commands for Buffers Visiting Files. + (line 52) +* C-c f B: Blaming. (line 28) +* C-c f b: Blaming. (line 28) +* C-c f B <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f b <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f B b: Blaming. (line 28) +* C-c f B e: Blaming. (line 28) +* C-c f B f: Blaming. (line 28) +* C-c f B q: Blaming. (line 28) +* C-c f B r: Blaming. (line 28) +* C-c f c: Commands for Buffers Visiting Files. + (line 52) +* C-c f D: Commands for Buffers Visiting Files. + (line 52) +* C-c f d: Commands for Buffers Visiting Files. + (line 52) +* C-c f e: Blaming. (line 28) +* C-c f e <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f f: Blaming. (line 28) +* C-c f f <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f g: Commands for Buffers Visiting Files. + (line 52) +* C-c f G: Commands for Buffers Visiting Files. + (line 52) +* C-c f L: Commands for Buffers Visiting Files. + (line 52) +* C-c f l: Commands for Buffers Visiting Files. + (line 52) +* C-c f M: Commands for Buffers Visiting Files. + (line 52) +* C-c f m: Commands for Buffers Visiting Files. + (line 52) +* C-c f n: Commands for Buffers Visiting Files. + (line 52) +* C-c f p: Commands for Buffers Visiting Files. + (line 52) +* C-c f q: Blaming. (line 28) +* C-c f q <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f r: Blaming. (line 28) +* C-c f r <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f s: Commands for Buffers Visiting Files. + (line 52) +* C-c f s <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f t: Commands for Buffers Visiting Files. + (line 52) +* C-c f u: Commands for Buffers Visiting Files. + (line 52) +* C-c f u <1>: Commands for Buffers Visiting Files. + (line 52) +* C-c f v: Commands for Buffers Visiting Files. + (line 52) +* C-c f V: Commands for Buffers Visiting Files. + (line 52) +* C-c g: Transient Commands. (line 20) * C-c M-g: Commands for Buffers Visiting Files. - (line 22) -* C-c M-g B: Blaming. (line 19) -* C-c M-g b: Blaming. (line 30) + (line 58) +* C-c M-g , c: Commands for Buffers Visiting Files. + (line 86) +* C-c M-g , k: Commands for Buffers Visiting Files. + (line 82) +* C-c M-g , r: Commands for Buffers Visiting Files. + (line 78) +* C-c M-g , x: Commands for Buffers Visiting Files. + (line 74) +* C-c M-g B: Blaming. (line 34) +* C-c M-g b: Blaming. (line 45) * C-c M-g B <1>: Commands for Buffers Visiting Files. - (line 83) -* C-c M-g B b: Blaming. (line 30) -* C-c M-g B e: Blaming. (line 61) -* C-c M-g B f: Blaming. (line 53) -* C-c M-g B r: Blaming. (line 45) + (line 137) +* C-c M-g B b: Blaming. (line 45) +* C-c M-g B e: Blaming. (line 76) +* C-c M-g B f: Blaming. (line 68) +* C-c M-g B q: Blaming. (line 87) +* C-c M-g B r: Blaming. (line 60) * C-c M-g c: Commands for Buffers Visiting Files. - (line 36) + (line 176) * C-c M-g D: Commands for Buffers Visiting Files. - (line 42) + (line 91) * C-c M-g d: Commands for Buffers Visiting Files. - (line 52) -* C-c M-g e: Blaming. (line 61) + (line 101) +* C-c M-g e: Blaming. (line 76) * C-c M-g e <1>: Commands for Buffers Visiting Files. - (line 95) -* C-c M-g f: Blaming. (line 53) + (line 182) +* C-c M-g f: Blaming. (line 68) +* C-c M-g g: Commands for Buffers Visiting Files. + (line 166) +* C-c M-g G: Commands for Buffers Visiting Files. + (line 172) * C-c M-g L: Commands for Buffers Visiting Files. - (line 60) + (line 109) * C-c M-g l: Commands for Buffers Visiting Files. - (line 70) + (line 119) +* C-c M-g M: Commands for Buffers Visiting Files. + (line 132) +* C-c M-g n: Commands for Buffers Visiting Files. + (line 153) * C-c M-g p: Commands for Buffers Visiting Files. - (line 104) -* C-c M-g r: Blaming. (line 45) + (line 149) +* C-c M-g q: Blaming. (line 87) +* C-c M-g r: Blaming. (line 60) * C-c M-g s: Commands for Buffers Visiting Files. - (line 29) + (line 63) +* C-c M-g s <1>: Commands for Buffers Visiting Files. + (line 63) * C-c M-g t: Commands for Buffers Visiting Files. - (line 76) + (line 129) * C-c M-g u: Commands for Buffers Visiting Files. - (line 32) + (line 69) +* C-c M-g u <1>: Commands for Buffers Visiting Files. + (line 69) +* C-c M-g v: Commands for Buffers Visiting Files. + (line 156) +* C-c M-g V: Commands for Buffers Visiting Files. + (line 160) * C-c M-i: Commit Pseudo Headers. (line 35) * C-c M-s: Editing Commit Messages. (line 33) * C-w: Common Commands. (line 22) * C-x g: Status Buffer. (line 23) +* C-x M-g: Transient Commands. (line 20) * C-x u: Editing Rebase Sequences. (line 77) * d: Diffing. (line 22) @@ -9820,7 +10023,7 @@ Appendix C Keystroke Index * DEL: Log Buffer. (line 50) * DEL <1>: Commands Available in Diffs. (line 56) -* DEL <2>: Blaming. (line 83) +* DEL <2>: Blaming. (line 103) * DEL <3>: Editing Rebase Sequences. (line 25) * e: Ediffing. (line 10) @@ -9837,7 +10040,7 @@ Appendix C Keystroke Index * E u: Ediffing. (line 91) * E w: Ediffing. (line 97) * E z: Ediffing. (line 103) -* f: Repository List. (line 105) +* f: Repository List. (line 111) * f <1>: Editing Rebase Sequences. (line 52) * f <2>: Fetching. (line 10) @@ -9868,7 +10071,7 @@ Appendix C Keystroke Index * k <1>: Applying. (line 40) * k <2>: Editing Rebase Sequences. (line 56) -* k <3>: Stashing. (line 82) +* k <3>: Stashing. (line 83) * l: Logging. (line 30) * L: Refreshing Logs. (line 12) * L <1>: Log Buffer. (line 7) @@ -9892,7 +10095,7 @@ Appendix C Keystroke Index * L s: Refreshing Logs. (line 21) * l u: Logging. (line 43) * L w: Refreshing Logs. (line 27) -* m: Repository List. (line 99) +* m: Repository List. (line 105) * m <1>: Merging. (line 10) * M: Remote Commands. (line 14) * m a: Merging. (line 42) @@ -9926,15 +10129,15 @@ Appendix C Keystroke Index (line 36) * M-p <2>: Editing Rebase Sequences. (line 37) -* M-w: Blaming. (line 114) +* M-w: Blaming. (line 134) * M-w <1>: Common Commands. (line 39) * MM: Editing Rebase Sequences. (line 102) * Mt: Editing Rebase Sequences. (line 108) * n: Section Movement. (line 16) -* n <1>: Blaming. (line 98) -* N: Blaming. (line 101) +* n <1>: Blaming. (line 118) +* N: Blaming. (line 121) * n <2>: Editing Rebase Sequences. (line 34) * n <3>: Minor Mode for Buffers Visiting Blobs. @@ -9958,8 +10161,8 @@ Appendix C Keystroke Index * o s: Submodule Transient. (line 40) * o u: Submodule Transient. (line 36) * p: Section Movement. (line 11) -* p <1>: Blaming. (line 104) -* P: Blaming. (line 107) +* p <1>: Blaming. (line 124) +* P: Blaming. (line 127) * p <2>: Editing Rebase Sequences. (line 31) * P <1>: Pushing. (line 10) @@ -9976,7 +10179,7 @@ Appendix C Keystroke Index * P u: Pushing. (line 22) * q: Quitting Windows. (line 7) * q <1>: Log Buffer. (line 14) -* q <2>: Blaming. (line 110) +* q <2>: Blaming. (line 130) * q <3>: Minor Mode for Buffers Visiting Blobs. (line 19) * r: Rebasing. (line 10) @@ -9995,11 +10198,11 @@ Appendix C Keystroke Index * r s <1>: Rebasing. (line 103) * r u: Rebasing. (line 35) * r w: Rebasing. (line 87) -* RET: Repository List. (line 96) +* RET: Repository List. (line 102) * RET <1>: References Buffer. (line 159) * RET <2>: Visiting Files and Blobs from a Diff. (line 9) -* RET <3>: Blaming. (line 71) +* RET <3>: Blaming. (line 91) * RET <4>: Editing Rebase Sequences. (line 15) * s: Staging and Unstaging. @@ -10012,7 +10215,7 @@ Appendix C Keystroke Index * SPC: Log Buffer. (line 41) * SPC <1>: Commands Available in Diffs. (line 53) -* SPC <2>: Blaming. (line 74) +* SPC <2>: Blaming. (line 94) * SPC <3>: Editing Rebase Sequences. (line 19) * t: Editing Rebase Sequences. @@ -10030,18 +10233,18 @@ Appendix C Keystroke Index * t t: Tagging. (line 14) * T T: Notes. (line 14) * TAB: Section Visibility. (line 10) -* u: Repository List. (line 102) +* u: Repository List. (line 108) * u <1>: Staging and Unstaging. (line 42) * U: Staging and Unstaging. (line 50) * v: Applying. (line 47) * V: Reverting. (line 7) -* V A: Reverting. (line 29) * V a: Reverting. (line 35) * V s: Reverting. (line 32) * V V: Reverting. (line 15) * V v: Reverting. (line 20) +* V V <1>: Reverting. (line 29) * W: Plain Patches. (line 7) * w: Maildir Patches. (line 9) * w a: Plain Patches. (line 20) @@ -10076,16 +10279,16 @@ Appendix C Keystroke Index * Z: Worktree. (line 9) * z a: Stashing. (line 52) * z b: Stashing. (line 70) -* z B: Stashing. (line 74) +* z B: Stashing. (line 75) * Z b: Worktree. (line 13) * Z c: Worktree. (line 16) -* z f: Stashing. (line 79) +* z f: Stashing. (line 80) * Z g: Worktree. (line 26) * z i: Stashing. (line 20) * z I: Stashing. (line 42) * z k: Stashing. (line 63) * Z k: Worktree. (line 22) -* z l: Stashing. (line 85) +* z l: Stashing. (line 86) * Z m: Worktree. (line 19) * z p: Stashing. (line 57) * z v: Stashing. (line 67) @@ -10201,27 +10404,56 @@ Appendix D Function and Command Index * magit-bisect-run: Bisecting. (line 26) * magit-bisect-skip: Bisecting. (line 46) * magit-bisect-start: Bisecting. (line 16) -* magit-blame: Blaming. (line 19) -* magit-blame <1>: Blaming. (line 95) -* magit-blame <2>: Commands for Buffers Visiting Files. - (line 83) -* magit-blame-addition: Blaming. (line 30) -* magit-blame-copy-hash: Blaming. (line 114) -* magit-blame-cycle-style: Blaming. (line 121) -* magit-blame-echo: Blaming. (line 61) -* magit-blame-next-chunk: Blaming. (line 98) -* magit-blame-next-chunk-same-commit: Blaming. (line 101) -* magit-blame-previous-chunk: Blaming. (line 104) -* magit-blame-previous-chunk-same-commit: Blaming. (line 107) -* magit-blame-quit: Blaming. (line 110) -* magit-blame-removal: Blaming. (line 45) -* magit-blame-reverse: Blaming. (line 53) -* magit-blob-next: Minor Mode for Buffers Visiting Blobs. +* magit-blame: Blaming. (line 28) +* magit-blame <1>: Blaming. (line 34) +* magit-blame <2>: Blaming. (line 115) +* magit-blame <3>: Commands for Buffers Visiting Files. + (line 52) +* magit-blame <4>: Commands for Buffers Visiting Files. + (line 137) +* magit-blame-addition: Blaming. (line 28) +* magit-blame-addition <1>: Blaming. (line 45) +* magit-blame-additions: Commands for Buffers Visiting Files. + (line 52) +* magit-blame-copy-hash: Blaming. (line 134) +* magit-blame-cycle-style: Blaming. (line 141) +* magit-blame-echo: Blaming. (line 28) +* magit-blame-echo <1>: Blaming. (line 76) +* magit-blame-echo <2>: Commands for Buffers Visiting Files. + (line 52) +* magit-blame-next-chunk: Blaming. (line 118) +* magit-blame-next-chunk-same-commit: Blaming. (line 121) +* magit-blame-previous-chunk: Blaming. (line 124) +* magit-blame-previous-chunk-same-commit: Blaming. (line 127) +* magit-blame-quit: Blaming. (line 28) +* magit-blame-quit <1>: Blaming. (line 87) +* magit-blame-quit <2>: Blaming. (line 130) +* magit-blame-quit <3>: Commands for Buffers Visiting Files. + (line 52) +* magit-blame-removal: Blaming. (line 28) +* magit-blame-removal <1>: Blaming. (line 60) +* magit-blame-removal <2>: Commands for Buffers Visiting Files. + (line 52) +* magit-blame-reverse: Blaming. (line 28) +* magit-blame-reverse <1>: Blaming. (line 68) +* magit-blame-reverse <2>: Commands for Buffers Visiting Files. + (line 52) +* magit-blob-next: Commands for Buffers Visiting Files. + (line 52) +* magit-blob-next <1>: Commands for Buffers Visiting Files. + (line 153) +* magit-blob-next <2>: Minor Mode for Buffers Visiting Blobs. (line 16) * magit-blob-previous: Commands for Buffers Visiting Files. - (line 104) -* magit-blob-previous <1>: Minor Mode for Buffers Visiting Blobs. + (line 52) +* magit-blob-previous <1>: Commands for Buffers Visiting Files. + (line 149) +* magit-blob-previous <2>: Minor Mode for Buffers Visiting Blobs. (line 13) +* magit-blob-visit-file: Commands for Buffers Visiting Files. + (line 52) +* magit-blob-visit-file <1>: Commands for Buffers Visiting Files. + (line 160) * magit-branch: Branch Commands. (line 13) * magit-branch-and-checkout: Branch Commands. (line 63) * magit-branch-checkout: Branch Commands. (line 69) @@ -10265,7 +10497,9 @@ Appendix D Function and Command Index * magit-clone-sparse: Cloning Repository. (line 38) * magit-commit: Initiating a Commit. (line 9) * magit-commit <1>: Commands for Buffers Visiting Files. - (line 36) + (line 52) +* magit-commit <2>: Commands for Buffers Visiting Files. + (line 176) * magit-commit-amend: Initiating a Commit. (line 18) * magit-commit-augment: Initiating a Commit. (line 59) * magit-commit-create: Initiating a Commit. (line 14) @@ -10291,9 +10525,13 @@ Appendix D Function and Command Index * magit-describe-section-briefly <1>: Matching Sections. (line 7) * magit-diff: Diffing. (line 22) * magit-diff <1>: Commands for Buffers Visiting Files. - (line 42) + (line 52) +* magit-diff <2>: Commands for Buffers Visiting Files. + (line 91) * magit-diff-buffer-file: Commands for Buffers Visiting Files. (line 52) +* magit-diff-buffer-file <1>: Commands for Buffers Visiting Files. + (line 101) * magit-diff-default-context: Refreshing Diffs. (line 68) * magit-diff-dwim: Diffing. (line 27) * magit-diff-edit-hunk-commit: Commands Available in Diffs. @@ -10309,9 +10547,9 @@ Appendix D Function and Command Index * magit-diff-scope: Matching Sections. (line 110) * magit-diff-set-default-arguments: Refreshing Diffs. (line 25) * magit-diff-show-or-scroll-down: Log Buffer. (line 50) -* magit-diff-show-or-scroll-down <1>: Blaming. (line 83) +* magit-diff-show-or-scroll-down <1>: Blaming. (line 103) * magit-diff-show-or-scroll-up: Log Buffer. (line 41) -* magit-diff-show-or-scroll-up <1>: Blaming. (line 74) +* magit-diff-show-or-scroll-up <1>: Blaming. (line 94) * magit-diff-staged: Diffing. (line 48) * magit-diff-switch-range-type: Refreshing Diffs. (line 41) * magit-diff-toggle-file-filter: Refreshing Diffs. (line 49) @@ -10339,7 +10577,7 @@ Appendix D Function and Command Index * magit-disable-section-inserter: Per-Repository Configuration. (line 31) * magit-discard: Applying. (line 40) -* magit-dispatch: Transient Commands. (line 19) +* magit-dispatch: Transient Commands. (line 20) * magit-display-buffer: Switching Buffers. (line 6) * magit-display-buffer-fullcolumn-most-v1: Switching Buffers. (line 68) * magit-display-buffer-fullframe-status-topleft-v1: Switching Buffers. @@ -10350,6 +10588,10 @@ Appendix D Function and Command Index (line 49) * magit-display-buffer-traditional: Switching Buffers. (line 42) * magit-display-repository-buffer: Common Commands. (line 9) +* magit-display-repository-buffer <1>: Commands for Buffers Visiting Files. + (line 52) +* magit-display-repository-buffer <2>: Commands for Buffers Visiting Files. + (line 172) * magit-ediff: Ediffing. (line 21) * magit-ediff-compare: Ediffing. (line 25) * magit-ediff-dwim: Ediffing. (line 10) @@ -10362,7 +10604,9 @@ Appendix D Function and Command Index * magit-ediff-show-working-tree: Ediffing. (line 97) * magit-ediff-stage: Ediffing. (line 87) * magit-edit-line-commit: Commands for Buffers Visiting Files. - (line 95) + (line 52) +* magit-edit-line-commit <1>: Commands for Buffers Visiting Files. + (line 182) * magit-emacs-Q-command: Debugging Tools. (line 16) * magit-fetch: Fetching. (line 10) * magit-fetch-all: Fetching. (line 45) @@ -10374,17 +10618,31 @@ Appendix D Function and Command Index * magit-fetch-refspec: Fetching. (line 41) * magit-file-checkout: Resetting. (line 44) * magit-file-checkout <1>: Commands for Buffers Visiting Files. - (line 118) + (line 52) +* magit-file-checkout <2>: Commands for Buffers Visiting Files. + (line 86) * magit-file-delete: Commands for Buffers Visiting Files. - (line 112) + (line 52) +* magit-file-delete <1>: Commands for Buffers Visiting Files. + (line 82) * magit-file-dispatch: Commands for Buffers Visiting Files. - (line 22) + (line 52) +* magit-file-dispatch <1>: Commands for Buffers Visiting Files. + (line 58) * magit-file-rename: Commands for Buffers Visiting Files. - (line 109) + (line 52) +* magit-file-rename <1>: Commands for Buffers Visiting Files. + (line 78) * magit-file-untrack: Commands for Buffers Visiting Files. - (line 115) + (line 52) +* magit-file-untrack <1>: Commands for Buffers Visiting Files. + (line 74) * magit-find-file: General-Purpose Visit Commands. (line 9) +* magit-find-file <1>: Commands for Buffers Visiting Files. + (line 52) +* magit-find-file <2>: Commands for Buffers Visiting Files. + (line 156) * magit-find-file-other-frame: General-Purpose Visit Commands. (line 19) * magit-find-file-other-window: General-Purpose Visit Commands. @@ -10500,12 +10758,16 @@ Appendix D Function and Command Index * magit-list-submodules <1>: Submodule Transient. (line 48) * magit-log: Logging. (line 30) * magit-log <1>: Commands for Buffers Visiting Files. - (line 60) + (line 52) +* magit-log <2>: Commands for Buffers Visiting Files. + (line 109) * magit-log-all: Logging. (line 61) * magit-log-all-branches: Logging. (line 58) * magit-log-branches: Logging. (line 55) * magit-log-buffer-file: Commands for Buffers Visiting Files. - (line 70) + (line 52) +* magit-log-buffer-file <1>: Commands for Buffers Visiting Files. + (line 119) * magit-log-bury-buffer: Log Buffer. (line 14) * magit-log-current: Logging. (line 35) * magit-log-double-commit-limit: Log Buffer. (line 64) @@ -10514,6 +10776,10 @@ Appendix D Function and Command Index * magit-log-maybe-show-more-commits: Section Movement. (line 58) * magit-log-maybe-update-blob-buffer: Section Movement. (line 72) * magit-log-maybe-update-revision-buffer: Section Movement. (line 65) +* magit-log-merged: Commands for Buffers Visiting Files. + (line 52) +* magit-log-merged <1>: Commands for Buffers Visiting Files. + (line 132) * magit-log-move-to-parent: Log Buffer. (line 26) * magit-log-move-to-revision: Log Buffer. (line 31) * magit-log-other: Logging. (line 49) @@ -10527,7 +10793,9 @@ Appendix D Function and Command Index * magit-log-set-default-arguments: Refreshing Logs. (line 21) * magit-log-toggle-commit-limit: Log Buffer. (line 59) * magit-log-trace-definition: Commands for Buffers Visiting Files. - (line 76) + (line 52) +* magit-log-trace-definition <1>: Commands for Buffers Visiting Files. + (line 129) * magit-margin-settings: Log Margin. (line 52) * magit-maybe-set-dedicated: Switching Buffers. (line 89) * magit-merge: Merging. (line 10) @@ -10611,27 +10879,28 @@ Appendix D Function and Command Index * magit-remote-remove: Remote Commands. (line 60) * magit-remote-rename: Remote Commands. (line 52) * magit-remote-set-url: Remote Commands. (line 56) -* magit-repolist-column-branch: Repository List. (line 52) -* magit-repolist-column-branches: Repository List. (line 59) -* magit-repolist-column-flag: Repository List. (line 65) -* magit-repolist-column-ident: Repository List. (line 41) -* magit-repolist-column-path: Repository List. (line 45) -* magit-repolist-column-stashes: Repository List. (line 62) +* magit-repolist-column-branch: Repository List. (line 51) +* magit-repolist-column-branches: Repository List. (line 58) +* magit-repolist-column-flag: Repository List. (line 64) +* magit-repolist-column-flags: Repository List. (line 76) +* magit-repolist-column-ident: Repository List. (line 40) +* magit-repolist-column-path: Repository List. (line 44) +* magit-repolist-column-stashes: Repository List. (line 61) * magit-repolist-column-unpulled-from-pushremote: Repository List. - (line 81) + (line 87) * magit-repolist-column-unpulled-from-upstream: Repository List. - (line 77) + (line 83) * magit-repolist-column-unpushed-to-pushremote: Repository List. - (line 89) + (line 95) * magit-repolist-column-unpushed-to-upstream: Repository List. - (line 85) -* magit-repolist-column-upstream: Repository List. (line 55) -* magit-repolist-column-version: Repository List. (line 48) -* magit-repolist-fetch: Repository List. (line 105) -* magit-repolist-find-file-other-frame: Repository List. (line 109) -* magit-repolist-mark: Repository List. (line 99) -* magit-repolist-status: Repository List. (line 96) -* magit-repolist-unmark: Repository List. (line 102) + (line 91) +* magit-repolist-column-upstream: Repository List. (line 54) +* magit-repolist-column-version: Repository List. (line 47) +* magit-repolist-fetch: Repository List. (line 111) +* magit-repolist-find-file-other-frame: Repository List. (line 115) +* magit-repolist-mark: Repository List. (line 105) +* magit-repolist-status: Repository List. (line 102) +* magit-repolist-unmark: Repository List. (line 108) * magit-reset-hard: Resetting. (line 24) * magit-reset-index: Staging and Unstaging. (line 78) @@ -10707,7 +10976,7 @@ Appendix D Function and Command Index * magit-shell-command-topdir: Running Git Manually. (line 34) * magit-show-commit: Diffing. (line 63) -* magit-show-commit <1>: Blaming. (line 71) +* magit-show-commit <1>: Blaming. (line 91) * magit-show-refs: References Buffer. (line 7) * magit-show-refs-current: References Buffer. (line 25) * magit-show-refs-head: References Buffer. (line 21) @@ -10723,10 +10992,16 @@ Appendix D Function and Command Index * magit-sparse-checkout-set: Sparse checkouts. (line 33) * magit-stage: Staging and Unstaging. (line 29) +* magit-stage-buffer-file: Commands for Buffers Visiting Files. + (line 52) +* magit-stage-buffer-file <1>: Commands for Buffers Visiting Files. + (line 63) * magit-stage-file: Staging from File-Visiting Buffers. (line 11) * magit-stage-file <1>: Commands for Buffers Visiting Files. - (line 29) + (line 52) +* magit-stage-file <2>: Commands for Buffers Visiting Files. + (line 63) * magit-stage-modified: Staging and Unstaging. (line 36) * magit-start-git: Calling Git for Effect. @@ -10737,19 +11012,23 @@ Appendix D Function and Command Index * magit-stash-apply: Stashing. (line 52) * magit-stash-both: Stashing. (line 14) * magit-stash-branch: Stashing. (line 70) -* magit-stash-branch-here: Stashing. (line 74) -* magit-stash-clear: Stashing. (line 82) +* magit-stash-branch-here: Stashing. (line 75) +* magit-stash-clear: Stashing. (line 83) * magit-stash-drop: Stashing. (line 63) -* magit-stash-format-patch: Stashing. (line 79) +* magit-stash-format-patch: Stashing. (line 80) * magit-stash-index: Stashing. (line 20) * magit-stash-keep-index: Stashing. (line 30) -* magit-stash-list: Stashing. (line 85) +* magit-stash-list: Stashing. (line 86) * magit-stash-pop: Stashing. (line 57) * magit-stash-show: Diffing. (line 67) * magit-stash-show <1>: Stashing. (line 67) * magit-stash-worktree: Stashing. (line 24) * magit-stashes-maybe-update-stash-buffer: Section Movement. (line 92) * magit-status: Status Buffer. (line 23) +* magit-status-here: Commands for Buffers Visiting Files. + (line 52) +* magit-status-here <1>: Commands for Buffers Visiting Files. + (line 166) * magit-status-maybe-update-blob-buffer: Section Movement. (line 87) * magit-status-maybe-update-revision-buffer: Section Movement. (line 77) @@ -10792,10 +11071,16 @@ Appendix D Function and Command Index (line 42) * magit-unstage-all: Staging and Unstaging. (line 50) +* magit-unstage-buffer-file: Commands for Buffers Visiting Files. + (line 52) +* magit-unstage-buffer-file <1>: Commands for Buffers Visiting Files. + (line 69) * magit-unstage-file: Staging from File-Visiting Buffers. (line 18) * magit-unstage-file <1>: Commands for Buffers Visiting Files. - (line 32) + (line 52) +* magit-unstage-file <2>: Commands for Buffers Visiting Files. + (line 69) * magit-version: Git Executable. (line 59) * magit-version <1>: Debugging Tools. (line 11) * magit-visit-ref: References Buffer. (line 159) @@ -10889,12 +11174,12 @@ Appendix E Variable Index * magit-auto-revert-tracked-only: Automatic Reverting of File-Visiting Buffers. (line 51) * magit-bisect-show-graph: Bisecting. (line 57) -* magit-blame-disable-modes: Blaming. (line 145) -* magit-blame-echo-style: Blaming. (line 131) -* magit-blame-goto-chunk-hook: Blaming. (line 150) -* magit-blame-read-only: Blaming. (line 141) -* magit-blame-styles: Blaming. (line 127) -* magit-blame-time-format: Blaming. (line 137) +* magit-blame-disable-modes: Blaming. (line 165) +* magit-blame-echo-style: Blaming. (line 151) +* magit-blame-goto-chunk-hook: Blaming. (line 170) +* magit-blame-read-only: Blaming. (line 161) +* magit-blame-styles: Blaming. (line 147) +* magit-blame-time-format: Blaming. (line 157) * magit-branch-adjust-remote-upstream-alist: Branch Commands. (line 202) * magit-branch-direct-configure: Branch Commands. (line 19) * magit-branch-prefer-remote-upstream: Branch Commands. (line 158) @@ -10916,10 +11201,10 @@ Appendix E Variable Index * magit-commit-squash-confirm: Initiating a Commit. (line 78) * magit-completing-read-function: Support for Completion Frameworks. (line 27) -* magit-define-global-key-bindings: Default Bindings. (line 6) +* magit-define-global-key-bindings: Global Bindings. (line 6) * magit-diff-adjust-tab-width: Diff Options. (line 17) * magit-diff-buffer-file-locked: Commands for Buffers Visiting Files. - (line 55) + (line 104) * magit-diff-extra-stat-arguments: Diff Options. (line 112) * magit-diff-hide-trailing-cr-characters: Diff Options. (line 77) * magit-diff-highlight-hunk-region-functions: Diff Options. (line 80) @@ -10954,7 +11239,7 @@ Appendix E Variable Index (line 6) * magit-log-auto-more: Log Buffer. (line 69) * magit-log-buffer-file-locked: Commands for Buffers Visiting Files. - (line 78) + (line 124) * magit-log-margin: Log Margin. (line 12) * magit-log-margin-show-committer-date: Log Margin. (line 44) * magit-log-section-commit-count: Status Sections. (line 114) @@ -11000,7 +11285,7 @@ Appendix E Variable Index * magit-remote-add-set-remote.pushDefault: Remote Commands. (line 83) * magit-remote-direct-configure: Remote Commands. (line 20) * magit-remote-git-executable: Git Executable. (line 32) -* magit-repolist-columns: Repository List. (line 13) +* magit-repolist-columns: Repository List. (line 12) * magit-repository-directories: Status Buffer. (line 57) * magit-revision-filter-files-on-follow: Revision Buffer. (line 55) * magit-revision-insert-related-refs: Revision Buffer. (line 6) @@ -11017,7 +11302,7 @@ Appendix E Variable Index * magit-section-visibility-indicator: Section Visibility. (line 109) * magit-shell-command-verbose-prompt: Running Git Manually. (line 43) -* magit-stashes-margin: Stashing. (line 87) +* magit-stashes-margin: Stashing. (line 88) * magit-status-headers-hook: Status Header Sections. (line 17) * magit-status-margin: Status Options. (line 9) @@ -11063,173 +11348,173 @@ Appendix E Variable Index  Tag Table: Node: Top754 -Node: Introduction6527 -Node: Installation11243 -Node: Installing from Melpa11573 -Node: Installing from the Git Repository12648 -Node: Post-Installation Tasks15380 -Node: Getting Started16665 -Node: Interface Concepts21992 -Node: Modes and Buffers22371 -Node: Switching Buffers24082 -Node: Naming Buffers28821 -Node: Quitting Windows31896 -Node: Automatic Refreshing of Magit Buffers33831 -Node: Automatic Saving of File-Visiting Buffers36712 -Node: Automatic Reverting of File-Visiting Buffers37896 -Node: Risk of Reverting Automatically42881 -Node: Sections45263 -Node: Section Movement46189 -Node: Section Visibility51063 -Node: Section Hooks57078 -Node: Section Types and Values59484 -Node: Section Options60899 -Node: Transient Commands61370 -Node: Transient Arguments and Buffer Variables62602 -Node: Completion Confirmation and the Selection69619 -Node: Action Confirmation70065 -Node: Completion and Confirmation77917 -Node: The Selection81102 -Node: The hunk-internal region84000 -Node: Support for Completion Frameworks85089 -Node: Additional Completion Options89992 -Node: Mouse Support90590 -Node: Running Git91166 -Node: Viewing Git Output91411 -Node: Git Process Status94115 -Node: Running Git Manually95080 -Node: Git Executable97770 -Node: Global Git Arguments100778 -Node: Inspecting101583 -Node: Status Buffer102740 -Node: Status Sections107750 -Node: Status Header Sections113277 -Node: Status Module Sections115896 -Node: Status Options118393 -Node: Repository List119856 -Node: Logging124423 -Node: Refreshing Logs127265 -Node: Log Buffer128686 -Node: Log Margin132886 -Node: Select from Log136039 -Node: Reflog138249 -Node: Cherries139886 -Node: Diffing141724 -Node: Refreshing Diffs144758 -Node: Commands Available in Diffs148447 -Node: Diff Options150960 -Node: Revision Buffer156423 -Node: Ediffing159743 -Node: References Buffer165793 -Node: References Sections176387 -Node: Bisecting177244 -Node: Visiting Files and Blobs179555 -Node: General-Purpose Visit Commands180025 -Node: Visiting Files and Blobs from a Diff180978 -Node: Blaming184422 -Node: Manipulating190557 -Node: Creating Repository190899 -Node: Cloning Repository191436 -Node: Staging and Unstaging197877 -Node: Staging from File-Visiting Buffers201858 -Node: Applying202964 -Node: Committing205037 -Node: Initiating a Commit205620 -Node: Editing Commit Messages210810 -Node: Using the Revision Stack213583 -Node: Commit Pseudo Headers216628 -Node: Commit Mode and Hooks217923 -Node: Commit Message Conventions220781 -Node: Branching222768 -Node: The Two Remotes222994 -Node: Branch Commands225647 -Node: Branch Git Variables238497 -Node: Auxiliary Branch Commands243870 -Node: Merging244986 -Node: Resolving Conflicts249142 -Node: Rebasing254516 -Node: Editing Rebase Sequences259305 -Node: Information About In-Progress Rebase263521 -Ref: Information About In-Progress Rebase-Footnote-1272634 -Node: Cherry Picking273230 -Node: Reverting277564 -Node: Resetting278983 -Node: Stashing280809 -Node: Transferring285420 -Node: Remotes285642 -Node: Remote Commands285794 -Node: Remote Git Variables289833 -Node: Fetching291104 -Node: Pulling293550 -Node: Pushing294576 -Node: Plain Patches298867 -Node: Maildir Patches300338 -Node: Miscellaneous301817 -Node: Tagging302163 -Node: Notes304056 -Node: Submodules306391 -Node: Listing Submodules306609 -Node: Submodule Transient308755 -Node: Subtree311242 -Node: Worktree313173 -Node: Sparse checkouts314249 -Node: Bundle317025 -Node: Common Commands317400 -Node: Wip Modes320028 -Node: Wip Graph324919 -Node: Legacy Wip Modes327232 -Node: Commands for Buffers Visiting Files330119 -Node: Minor Mode for Buffers Visiting Blobs335677 -Node: Customizing336475 -Node: Per-Repository Configuration338071 -Node: Essential Settings340325 -Node: Safety340670 -Node: Performance342431 -Ref: Log Performance345460 -Ref: Diff Performance346765 -Ref: Refs Buffer Performance348106 -Ref: Committing Performance348681 -Node: Microsoft Windows Performance349663 -Node: MacOS Performance350854 -Ref: MacOS Performance-Footnote-1351877 -Node: Default Bindings351959 -Node: Plumbing354200 -Node: Calling Git355029 -Node: Getting a Value from Git356554 -Node: Calling Git for Effect360282 -Node: Section Plumbing366176 -Node: Creating Sections366404 -Node: Section Selection370300 -Node: Matching Sections372096 -Node: Refreshing Buffers378017 -Node: Conventions381161 -Node: Theming Faces381353 -Node: FAQ389458 -Node: FAQ - How to ...?389896 -Node: How to pronounce Magit?390253 -Node: How to show git's output?391056 -Node: How to install the gitman info manual?391842 -Node: How to show diffs for gpg-encrypted files?392812 -Node: How does branching and pushing work?393408 -Node: Should I disable VC?393741 -Node: FAQ - Issues and Errors394344 -Node: Magit is slow395289 -Node: I changed several thousand files at once and now Magit is unusable395582 -Node: I am having problems committing396308 -Node: I am using MS Windows and cannot push with Magit396789 -Node: I am using macOS and SOMETHING works in shell but not in Magit397407 -Node: Expanding a file to show the diff causes it to disappear398241 -Node: Point is wrong in the COMMIT_EDITMSG buffer398823 -Node: The mode-line information isn't always up-to-date399869 -Node: A branch and tag sharing the same name breaks SOMETHING400932 -Node: My Git hooks work on the command-line but not inside Magit401818 -Node: git-commit-mode isn't used when committing from the command-line402664 -Node: Point ends up inside invisible text when jumping to a file-visiting buffer404935 -Node: I am no longer able to save popup defaults405784 -Node: Debugging Tools406765 -Node: Keystroke Index409939 -Node: Function and Command Index444267 -Node: Variable Index496297 +Node: Introduction6526 +Node: Installation11242 +Node: Installing from Melpa11572 +Node: Installing from the Git Repository12647 +Node: Post-Installation Tasks15461 +Node: Getting Started16746 +Node: Interface Concepts22557 +Node: Modes and Buffers22936 +Node: Switching Buffers24647 +Node: Naming Buffers29386 +Node: Quitting Windows32461 +Node: Automatic Refreshing of Magit Buffers34396 +Node: Automatic Saving of File-Visiting Buffers37277 +Node: Automatic Reverting of File-Visiting Buffers38461 +Node: Risk of Reverting Automatically43446 +Node: Sections45828 +Node: Section Movement46754 +Node: Section Visibility51628 +Node: Section Hooks57643 +Node: Section Types and Values60049 +Node: Section Options61464 +Node: Transient Commands61935 +Node: Transient Arguments and Buffer Variables63411 +Node: Completion Confirmation and the Selection70428 +Node: Action Confirmation70874 +Node: Completion and Confirmation78726 +Node: The Selection81911 +Node: The hunk-internal region84809 +Node: Support for Completion Frameworks85898 +Node: Additional Completion Options90801 +Node: Mouse Support91399 +Node: Running Git91975 +Node: Viewing Git Output92220 +Node: Git Process Status94924 +Node: Running Git Manually95889 +Node: Git Executable98579 +Node: Global Git Arguments101587 +Node: Inspecting102392 +Node: Status Buffer103549 +Node: Status Sections108560 +Node: Status Header Sections114087 +Node: Status Module Sections116706 +Node: Status Options119203 +Node: Repository List120666 +Node: Logging125444 +Node: Refreshing Logs128286 +Node: Log Buffer129707 +Node: Log Margin133907 +Node: Select from Log137060 +Node: Reflog139270 +Node: Cherries140907 +Node: Diffing142745 +Node: Refreshing Diffs145779 +Node: Commands Available in Diffs149468 +Node: Diff Options151981 +Node: Revision Buffer157444 +Node: Ediffing160764 +Node: References Buffer166814 +Node: References Sections177408 +Node: Bisecting178265 +Node: Visiting Files and Blobs180576 +Node: General-Purpose Visit Commands181104 +Node: Visiting Files and Blobs from a Diff182057 +Node: Blaming185501 +Node: Manipulating192489 +Node: Creating Repository192831 +Node: Cloning Repository193368 +Node: Staging and Unstaging199809 +Node: Staging from File-Visiting Buffers203790 +Node: Applying204896 +Node: Committing206969 +Node: Initiating a Commit207552 +Node: Editing Commit Messages212742 +Node: Using the Revision Stack215515 +Node: Commit Pseudo Headers218560 +Node: Commit Mode and Hooks219855 +Node: Commit Message Conventions222713 +Node: Branching224700 +Node: The Two Remotes224926 +Node: Branch Commands227579 +Node: Branch Git Variables240429 +Node: Auxiliary Branch Commands245803 +Node: Merging246919 +Node: Resolving Conflicts251075 +Node: Rebasing256449 +Node: Editing Rebase Sequences261238 +Node: Information About In-Progress Rebase265454 +Ref: Information About In-Progress Rebase-Footnote-1274567 +Node: Cherry Picking275163 +Node: Reverting279497 +Node: Resetting280916 +Node: Stashing282742 +Node: Transferring287394 +Node: Remotes287616 +Node: Remote Commands287768 +Node: Remote Git Variables291807 +Node: Fetching293078 +Node: Pulling295524 +Node: Pushing296550 +Node: Plain Patches300841 +Node: Maildir Patches302312 +Node: Miscellaneous303791 +Node: Tagging304137 +Node: Notes306030 +Node: Submodules308365 +Node: Listing Submodules308583 +Node: Submodule Transient310731 +Node: Subtree313218 +Node: Worktree315149 +Node: Sparse checkouts316225 +Node: Bundle319001 +Node: Common Commands319376 +Node: Wip Modes322004 +Node: Wip Graph326895 +Node: Legacy Wip Modes329208 +Node: Commands for Buffers Visiting Files332095 +Node: Minor Mode for Buffers Visiting Blobs340323 +Node: Customizing341121 +Node: Per-Repository Configuration342717 +Node: Essential Settings344971 +Node: Safety345317 +Node: Performance347078 +Ref: Log Performance350106 +Ref: Diff Performance351411 +Ref: Refs Buffer Performance352752 +Ref: Committing Performance353327 +Node: Microsoft Windows Performance354309 +Node: MacOS Performance355500 +Ref: MacOS Performance-Footnote-1356523 +Node: Global Bindings356605 +Node: Plumbing358833 +Node: Calling Git359662 +Node: Getting a Value from Git361187 +Node: Calling Git for Effect364915 +Node: Section Plumbing370809 +Node: Creating Sections371037 +Node: Section Selection374933 +Node: Matching Sections376729 +Node: Refreshing Buffers382650 +Node: Conventions385794 +Node: Theming Faces385986 +Node: FAQ394091 +Node: FAQ - How to ...?394529 +Node: How to pronounce Magit?394886 +Node: How to show git's output?395689 +Node: How to install the gitman info manual?396475 +Node: How to show diffs for gpg-encrypted files?397445 +Node: How does branching and pushing work?398041 +Node: Should I disable VC?398374 +Node: FAQ - Issues and Errors398977 +Node: Magit is slow399922 +Node: I changed several thousand files at once and now Magit is unusable400215 +Node: I am having problems committing400941 +Node: I am using MS Windows and cannot push with Magit401422 +Node: I am using macOS and SOMETHING works in shell but not in Magit402040 +Node: Expanding a file to show the diff causes it to disappear402874 +Node: Point is wrong in the COMMIT_EDITMSG buffer403462 +Node: The mode-line information isn't always up-to-date404507 +Node: A branch and tag sharing the same name breaks SOMETHING405570 +Node: My Git hooks work on the command-line but not inside Magit406457 +Node: git-commit-mode isn't used when committing from the command-line407303 +Node: Point ends up inside invisible text when jumping to a file-visiting buffer409574 +Node: I am no longer able to save popup defaults410423 +Node: Debugging Tools411404 +Node: Keystroke Index414578 +Node: Function and Command Index456119 +Node: Variable Index514320  End Tag Table diff --git a/elpa/magit-section-20230428.1518/dir b/elpa/magit-section-20230521.1803/dir similarity index 100% rename from elpa/magit-section-20230428.1518/dir rename to elpa/magit-section-20230521.1803/dir diff --git a/elpa/magit-section-20230428.1518/magit-section-autoloads.el b/elpa/magit-section-20230521.1803/magit-section-autoloads.el similarity index 100% rename from elpa/magit-section-20230428.1518/magit-section-autoloads.el rename to elpa/magit-section-20230521.1803/magit-section-autoloads.el diff --git a/elpa/magit-section-20230428.1518/magit-section-pkg.el b/elpa/magit-section-20230521.1803/magit-section-pkg.el similarity index 70% rename from elpa/magit-section-20230428.1518/magit-section-pkg.el rename to elpa/magit-section-20230521.1803/magit-section-pkg.el index 9f9efd0f..629646b0 100644 --- a/elpa/magit-section-20230428.1518/magit-section-pkg.el +++ b/elpa/magit-section-20230521.1803/magit-section-pkg.el @@ -1,8 +1,8 @@ -(define-package "magit-section" "20230428.1518" "Sections for read-only buffers." +(define-package "magit-section" "20230521.1803" "Sections for read-only buffers." '((emacs "25.1") (compat "29.1.3.4") (dash "20221013")) - :commit "c5ebbf86ed9fa0cc33d5e7e788a55fe8c7ab4b93" :authors + :commit "80959650b24a9c849b736234b56bc3d8aff2c0b9" :authors '(("Jonas Bernoulli" . "jonas@bernoul.li")) :maintainer '("Jonas Bernoulli" . "jonas@bernoul.li") diff --git a/elpa/magit-section-20230428.1518/magit-section.el b/elpa/magit-section-20230521.1803/magit-section.el similarity index 99% rename from elpa/magit-section-20230428.1518/magit-section.el rename to elpa/magit-section-20230521.1803/magit-section.el index d9de2447..8626058c 100644 --- a/elpa/magit-section-20230428.1518/magit-section.el +++ b/elpa/magit-section-20230521.1803/magit-section.el @@ -79,7 +79,7 @@ diff-related sections being the only exception.") "Hook used to set the initial visibility of a section. Stop at the first function that returns non-nil. The returned value should be `show', `hide' or nil. If no function returns -non-nil, determine the visibility as usual, i.e. use the +non-nil, determine the visibility as usual, i.e., use the hardcoded section specific default (see `magit-insert-section').") ;;; Options @@ -1275,7 +1275,7 @@ appropriate package prefix. This works due to some undocumented kludges, which are not available to other packages. When optional HIDE is non-nil collapse the section body by -default, i.e. when first creating the section, but not when +default, i.e., when first creating the section, but not when refreshing the buffer. Else expand it by default. This can be overwritten using `magit-section-set-visibility-hook'. When a section is recreated during a refresh, then the visibility of diff --git a/elpa/magit-section-20230428.1518/magit-section.info b/elpa/magit-section-20230521.1803/magit-section.info similarity index 99% rename from elpa/magit-section-20230428.1518/magit-section.info rename to elpa/magit-section-20230521.1803/magit-section.info index b89c67db..f2998a89 100644 --- a/elpa/magit-section-20230428.1518/magit-section.info +++ b/elpa/magit-section-20230521.1803/magit-section.info @@ -98,7 +98,7 @@ File: magit-section.info, Node: Creating Sections, Next: Core Functions, Prev kludges, which are not available to other packages. When optional HIDE is non-nil collapse the section body by default, - i.e. when first creating the section, but not when refreshing the + i.e., when first creating the section, but not when refreshing the buffer. Else expand it by default. This can be overwritten using ‘magit-section-set-visibility-hook’. When a section is recreated during a refresh, then the visibility of predecessor is inherited -- 2.47.3