update packages
This commit is contained in:
@@ -1,25 +1,27 @@
|
||||
;;; magit.el --- A Git porcelain inside Emacs -*- lexical-binding: t; coding: utf-8 -*-
|
||||
|
||||
;; Copyright (C) 2008-2021 The Magit Project Contributors
|
||||
;; Copyright (C) 2008-2022 The Magit Project Contributors
|
||||
;;
|
||||
;; You should have received a copy of the AUTHORS.md file which
|
||||
;; lists all contributors. If not, see http://magit.vc/authors.
|
||||
|
||||
;; Author: Marius Vollmer <marius.vollmer@gmail.com>
|
||||
;; Jonas Bernoulli <jonas@bernoul.li>
|
||||
;; Maintainer: Jonas Bernoulli <jonas@bernoul.li>
|
||||
;; Kyle Meyer <kyle@kyleam.com>
|
||||
;; Noam Postavsky <npostavs@users.sourceforge.net>
|
||||
;; Kyle Meyer <kyle@kyleam.com>
|
||||
;; Noam Postavsky <npostavs@users.sourceforge.net>
|
||||
;; Former-Maintainers:
|
||||
;; Nicolas Dudebout <nicolas.dudebout@gatech.edu>
|
||||
;; Peter J. Weisberg <pj@irregularexpressions.net>
|
||||
;; Phil Jackson <phil@shellarchive.co.uk>
|
||||
;; Rémi Vanicat <vanicat@debian.org>
|
||||
;; Yann Hodique <yann.hodique@gmail.com>
|
||||
;; Nicolas Dudebout <nicolas.dudebout@gatech.edu>
|
||||
;; Peter J. Weisberg <pj@irregularexpressions.net>
|
||||
;; Phil Jackson <phil@shellarchive.co.uk>
|
||||
;; Rémi Vanicat <vanicat@debian.org>
|
||||
;; Yann Hodique <yann.hodique@gmail.com>
|
||||
|
||||
;; Keywords: git tools vc
|
||||
;; Homepage: https://github.com/magit/magit
|
||||
|
||||
;; Magit requires at least GNU Emacs 25.1 and Git 2.2.0.
|
||||
;; Package-Requires: ((emacs "25.1") (dash "2.19.1") (git-commit "3.3.0") (magit-section "3.3.0") (transient "0.3.6") (with-editor "3.0.5"))
|
||||
;; Package-Version: 3.3.0
|
||||
;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
;; Magit is free software; you can redistribute it and/or modify it
|
||||
;; under the terms of the GNU General Public License as published by
|
||||
@@ -34,35 +36,34 @@
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with Magit. If not, see http://www.gnu.org/licenses.
|
||||
|
||||
;; Magit requires at least GNU Emacs 25.1 and Git 2.2.0.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Magit is an interface to the version control system Git,
|
||||
;; implemented as an Emacs package. Magit aspires to be a complete
|
||||
;; Git porcelain. While we cannot (yet) claim, that Magit wraps and
|
||||
;; improves upon each and every Git command, it is complete enough to
|
||||
;; allow even experienced Git users to perform almost all of their
|
||||
;; daily version control tasks directly from within Emacs. While many
|
||||
;; fine Git clients exist, only Magit and Git itself deserve to be
|
||||
;; called porcelains.
|
||||
;; Magit is a text-based Git user interface that puts an unmatched focus
|
||||
;; on streamlining workflows. Commands are invoked using short mnemonic
|
||||
;; key sequences that take the cursor’s position in the highly actionable
|
||||
;; interface into account to provide context-sensitive behavior.
|
||||
|
||||
;; With Magit you can do nearly everything that you can do when using Git
|
||||
;; on the command-line, but at greater speed and while taking advantage
|
||||
;; of advanced features that previously seemed too daunting to use on a
|
||||
;; daily basis. Many users will find that by using Magit they can become
|
||||
;; more effective Git user.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'dash)
|
||||
|
||||
(require 'subr-x)
|
||||
|
||||
(require 'with-editor)
|
||||
(require 'git-commit)
|
||||
(require 'magit-core)
|
||||
(require 'magit-diff)
|
||||
(require 'magit-log)
|
||||
(require 'magit-wip)
|
||||
(require 'magit-apply)
|
||||
(require 'magit-repos)
|
||||
(require 'git-commit)
|
||||
|
||||
(require 'format-spec)
|
||||
(require 'package nil t) ; used in `magit-version'
|
||||
(require 'with-editor)
|
||||
|
||||
(defconst magit--minimal-git "2.2.0")
|
||||
(defconst magit--minimal-emacs "25.1")
|
||||
@@ -107,8 +108,8 @@ own faces for the `header-line', or for parts of the
|
||||
:group 'magit-faces)
|
||||
|
||||
(defface magit-branch-remote-head
|
||||
'((((class color) (background light)) :inherit magit-branch-remote :box t)
|
||||
(((class color) (background dark)) :inherit magit-branch-remote :box t))
|
||||
'((((supports (:box t))) :inherit magit-branch-remote :box t)
|
||||
(t :inherit magit-branch-remote :inverse-video t))
|
||||
"Face for current branch."
|
||||
:group 'magit-faces)
|
||||
|
||||
@@ -119,8 +120,8 @@ own faces for the `header-line', or for parts of the
|
||||
:group 'magit-faces)
|
||||
|
||||
(defface magit-branch-current
|
||||
'((((class color) (background light)) :inherit magit-branch-local :box t)
|
||||
(((class color) (background dark)) :inherit magit-branch-local :box t))
|
||||
'((((supports (:box t))) :inherit magit-branch-local :box t)
|
||||
(t :inherit magit-branch-local :inverse-video t))
|
||||
"Face for current branch."
|
||||
:group 'magit-faces)
|
||||
|
||||
@@ -132,6 +133,11 @@ This face is only used in logs and it gets combined
|
||||
and/or `magit-branch-remote-head'."
|
||||
:group 'magit-faces)
|
||||
|
||||
(defface magit-branch-warning
|
||||
'((t :inherit warning))
|
||||
"Face for warning about (missing) branch."
|
||||
:group 'magit-faces)
|
||||
|
||||
(defface magit-head
|
||||
'((((class color) (background light)) :inherit magit-branch-local)
|
||||
(((class color) (background dark)) :inherit magit-branch-local))
|
||||
@@ -180,7 +186,7 @@ and/or `magit-branch-remote-head'."
|
||||
:group 'magit-faces)
|
||||
|
||||
(defface magit-signature-untrusted
|
||||
'((t :foreground "cyan"))
|
||||
'((t :foreground "medium aquamarine"))
|
||||
"Face for good untrusted signatures."
|
||||
:group 'magit-faces)
|
||||
|
||||
@@ -200,7 +206,7 @@ and/or `magit-branch-remote-head'."
|
||||
:group 'magit-faces)
|
||||
|
||||
(defface magit-signature-error
|
||||
'((t :foreground "firebrick3"))
|
||||
'((t :foreground "light blue"))
|
||||
"Face for signatures that cannot be checked (e.g. missing key)."
|
||||
:group 'magit-faces)
|
||||
|
||||
@@ -238,7 +244,7 @@ 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 called.
|
||||
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
|
||||
@@ -252,8 +258,14 @@ is loaded or autoloaded) and to increase the likelihood that
|
||||
all the potentially conflicting user bindings have already
|
||||
been added.
|
||||
|
||||
Setting this variable after the hook has already been called
|
||||
has no effect.
|
||||
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 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
|
||||
@@ -289,7 +301,10 @@ Also see info node `(magit)Commands for Buffers Visiting Files'."
|
||||
"Invoke a Magit command from a list of available commands."
|
||||
:info-manual "(magit)Top"
|
||||
["Transient and dwim commands"
|
||||
;; → bound in magit-mode-map or magit-section-mode-map
|
||||
;; ↓ bound below
|
||||
[("A" "Apply" magit-cherry-pick)
|
||||
;; a ↓
|
||||
("b" "Branch" magit-branch)
|
||||
("B" "Bisect" magit-bisect)
|
||||
("c" "Commit" magit-commit)
|
||||
@@ -297,28 +312,51 @@ Also see info node `(magit)Commands for Buffers Visiting Files'."
|
||||
("d" "Diff" magit-diff)
|
||||
("D" "Diff (change)" magit-diff-refresh)
|
||||
("e" "Ediff (dwim)" magit-ediff-dwim)
|
||||
("E" "Ediff" magit-ediff)]
|
||||
[("f" "Fetch" magit-fetch)
|
||||
("E" "Ediff" magit-ediff)
|
||||
("f" "Fetch" magit-fetch)
|
||||
("F" "Pull" magit-pull)
|
||||
;; g ↓
|
||||
;; G → magit-refresh-all
|
||||
("h" "Help" magit-help)
|
||||
("H" "Section info" magit-describe-section :if-derived magit-mode)]
|
||||
[("i" "Ignore" magit-gitignore)
|
||||
("I" "Init" magit-init)
|
||||
("j" "Jump to section"magit-status-jump :if-mode magit-status-mode)
|
||||
("j" "Display status" magit-status-quick :if-not-mode magit-status-mode)
|
||||
("J" "Display buffer" magit-display-repository-buffer)
|
||||
;; k ↓
|
||||
;; K → magit-file-untrack
|
||||
("l" "Log" magit-log)
|
||||
("L" "Log (change)" magit-log-refresh)
|
||||
("m" "Merge" magit-merge)
|
||||
("M" "Remote" magit-remote)
|
||||
;; n → magit-section-forward
|
||||
;; N reserved → forge-dispatch
|
||||
("o" "Submodule" magit-submodule)
|
||||
("O" "Subtree" magit-subtree)]
|
||||
[("P" "Push" magit-push)
|
||||
("r" "Rebase" magit-rebase)
|
||||
("O" "Subtree" magit-subtree)
|
||||
;; p → magit-section-backward
|
||||
("P" "Push" magit-push)
|
||||
;; q → magit-mode-bury-buffer
|
||||
("Q" "Command" magit-git-command)]
|
||||
[("r" "Rebase" magit-rebase)
|
||||
;; R → magit-file-rename
|
||||
;; s ↓
|
||||
;; S ↓
|
||||
("t" "Tag" magit-tag)
|
||||
("T" "Note" magit-notes)
|
||||
;; u ↓
|
||||
;; U ↓
|
||||
;; v ↓
|
||||
("V" "Revert" magit-revert)
|
||||
("w" "Apply patches" magit-am)
|
||||
("W" "Format patches" magit-patch)
|
||||
("X" "Reset" magit-reset)]
|
||||
[("y" "Show Refs" magit-show-refs)
|
||||
;; x → magit-reset-quickly
|
||||
("X" "Reset" magit-reset)
|
||||
("y" "Show Refs" magit-show-refs)
|
||||
("Y" "Cherries" magit-cherry)
|
||||
("z" "Stash" magit-stash)
|
||||
("!" "Run" magit-run)
|
||||
("%" "Worktree" magit-worktree)]]
|
||||
("Z" "Worktree" magit-worktree)
|
||||
("!" "Run" magit-run)]]
|
||||
["Applying changes"
|
||||
:if-derived magit-mode
|
||||
[("a" "Apply" magit-apply)
|
||||
@@ -333,7 +371,7 @@ Also see info node `(magit)Commands for Buffers Visiting Files'."
|
||||
("g" " refresh current buffer" magit-refresh)
|
||||
("<tab>" " toggle section at point" magit-section-toggle)
|
||||
("<return>" "visit thing at point" magit-visit-thing)
|
||||
("C-h m" " show all key bindings" describe-mode)])
|
||||
("C-x m" " show all key bindings" describe-mode)])
|
||||
|
||||
;;; Git Popup
|
||||
|
||||
@@ -350,8 +388,6 @@ This affects `magit-git-command', `magit-git-command-topdir',
|
||||
;;;###autoload (autoload 'magit-run "magit" nil t)
|
||||
(transient-define-prefix magit-run ()
|
||||
"Run git or another command, or launch a graphical utility."
|
||||
|
||||
|
||||
[["Run git subcommand"
|
||||
("!" "in repository root" magit-git-command-topdir)
|
||||
("p" "in working directory" magit-git-command)]
|
||||
@@ -465,8 +501,10 @@ and Emacs to it."
|
||||
(toplib (or load-file-name buffer-file-name))
|
||||
debug)
|
||||
(unless (and toplib
|
||||
(equal (file-name-nondirectory toplib) "magit.el"))
|
||||
(setq toplib (locate-library "magit.el")))
|
||||
(member (file-name-nondirectory toplib)
|
||||
'("magit.el" "magit.el.gz")))
|
||||
(let ((load-suffixes (reverse load-suffixes))) ; prefer .el than .elc
|
||||
(setq toplib (locate-library "magit"))))
|
||||
(setq toplib (and toplib (magit--straight-chase-links toplib)))
|
||||
(push toplib debug)
|
||||
(when toplib
|
||||
@@ -526,8 +564,19 @@ and Emacs to it."
|
||||
(magit-git-string "rev-parse" "HEAD"))))))))
|
||||
(if (stringp magit-version)
|
||||
(when print-dest
|
||||
(princ (format "Magit %s, Git %s, Emacs %s, %s"
|
||||
(princ (format "Magit %s%s, Git %s, Emacs %s, %s"
|
||||
(or magit-version "(unknown)")
|
||||
(or (and (ignore-errors (version< "2008" magit-version))
|
||||
(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 (let ((magit-git-debug
|
||||
(lambda (err)
|
||||
(display-warning '(magit git)
|
||||
@@ -541,7 +590,7 @@ and Emacs to it."
|
||||
(setq magit-version 'error)
|
||||
(when magit-version
|
||||
(push magit-version debug))
|
||||
(unless (equal (getenv "TRAVIS") "true")
|
||||
(unless (equal (getenv "CI") "true")
|
||||
;; The repository is a sparse clone.
|
||||
(message "Cannot determine Magit's version %S" debug)))
|
||||
magit-version))
|
||||
@@ -550,11 +599,14 @@ and Emacs to it."
|
||||
|
||||
(defun magit-debug-git-executable ()
|
||||
"Display a buffer with information about `magit-git-executable'.
|
||||
Also include information about `magit-remote-git-executable'.
|
||||
See info node `(magit)Debugging Tools' for more information."
|
||||
(interactive)
|
||||
(with-current-buffer (get-buffer-create "*magit-git-debug*")
|
||||
(pop-to-buffer (current-buffer))
|
||||
(erase-buffer)
|
||||
(insert (format "magit-remote-git-executable: %S\n"
|
||||
magit-remote-git-executable))
|
||||
(insert (concat
|
||||
(format "magit-git-executable: %S" magit-git-executable)
|
||||
(and (not (file-name-absolute-p magit-git-executable))
|
||||
@@ -596,7 +648,7 @@ https://github.com/magit/magit/wiki/Don't-set-$GIT_DIR-and-alike" val))
|
||||
(let ((version (magit-git-version)))
|
||||
(when (and version
|
||||
(version< version magit--minimal-git)
|
||||
(not (equal (getenv "TRAVIS") "true")))
|
||||
(not (equal (getenv "CI") "true")))
|
||||
(display-warning 'magit (format "\
|
||||
Magit requires Git >= %s, you are using %s.
|
||||
|
||||
@@ -663,8 +715,8 @@ For X11 something like ~/.xinitrc should work.\n"
|
||||
(require 'magit-imenu)
|
||||
(require 'magit-bookmark)))
|
||||
|
||||
(eval-after-load 'bookmark
|
||||
'(require 'magit-bookmark))
|
||||
(with-eval-after-load 'bookmark
|
||||
(require 'magit-bookmark))
|
||||
|
||||
(if after-init-time
|
||||
(progn (magit-startup-asserts)
|
||||
|
||||
Reference in New Issue
Block a user