* It's Magit!  A Git Porcelain inside Emacs

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.

For more information about Magit, see https://magit.vc.

* Magit v3.3.0 Release Notes

Released 4th October 2021 by Jonas Bernoulli.

I am pleased to announce the release of Magit version 3.3.0,
representing 88 commits by 6 contributors over two month.

Also see https://emacsair.me/2021/10/04/magit-3.3.

** Breaking changes

- The last remaining alphabetic keys (both lower- and uppercase) are
  now bound in ~magit-mode-map~.  ~H~ to ~magit-describe-section~, ~j~ to the
  new ~magit-status-quick~ (or ~magit-status-jump~ in status buffers), ~J~
  to the new ~magit-display-repository-buffer~, ~Q~ to ~magit-git-command~
  and ~Z~ to ~magit-worktree~, and once Forge is loaded, then ~N~ to
  ~forge-dispatch~.  (~Z~ used to be bound to ~magit-stash~, which now is
  only available on ~z~.)  #4259, 9bec1c54a, e401bd4d3

- ~I~ is now bound to ~magit-init~ instead of ~magit-gitignore~, which
  continues to be available on ~i~.  Users of the ~magit-imerge~ package
  (which previously bound ~i~) should consult its library header for a
  suggestion on how to resolve the resulting conflict.  b54b537db

** Changes since v3.2.0

- No longer automatically add ~--full-history~ when showing a log for a
  single file that isn't being tracked anymore.  #4381

- ~magit-stash-both~ now asks before discarding merge state.  #4345

- Several infix arguments, which previously could only be disabled
  or have a numeric value, can now also be enabled without having
  an explicit numeric value.  #4379

- Added ~-Xignore-space-change~ and ~-Xignore-all-space~ to ~magit-merge~.
  Like most newly added expert arguments they have to be explicitly
  [[https://magit.vc/manual/transient/Enabling-and-Disabling-Suffixes.html][revealed]].  #4387

- Added new command ~magit-status-quick~, which shows the status buffer
  but avoids refreshing it for performance reasons.  #4259

- Added new commands ~magit-display-repository-buffer~ (bound to ~j~ in
  Magit buffers) and ~magit-switch-to-repository-buffer~ (bound to ~J~)
  and variants for switching to any existing Magit buffer belonging
  to the current repository.  #4259

- Added new command ~magit-dired-am-apply-patches~ for use in Dired.
  #4094.

- Rearranged ~magit-patch~ and added a binding for ~magit-am~.  8ec3a1a21,
  8cadf302b

- Added new command ~magit-help~ (bound to ~h~ in ~magit-dispatch~), which
  simply shows Magit's Info manual.  5bba62629

- When listing entries for Imenu, then remove entry counts from group
  titles for the benefit of third-party packages that need stable
  titles.  #4477

- Include Forge's ~pullreq~ and ~issue~ sections when listing entries for
  Imenu.  f4016f734

- Bound ~imenu~ in the ~magit-status-jump~ prefix.  678df30c3

- Added new transient prefix command ~magit-bundle~, which provides
  support for ~git bundle~.  #4392

- When minibuffer completion allows for a branch or a commit to be
  selected and the former is preferred and thus offered as default
  then, if possible, offer the commit at point as the first choice
  initially accessible with ~next-history-element~.  #4291

- Bound ~magit-refs-set-show-commit-count~ in the ~magit-show-refs~
  prefix.  2fe42f63d

- Added new option ~magit-commit-diff-inhibit-same-window~.  #4132

- Added support for invoking Smerge's "keep" commands when point is on
  a hunk in a Magit buffer.  They can be invoked using the same key
  bindings as in file-visiting buffers or ~RET~, ~u~, ~b~ and ~l~.  #4458

- Added new command ~magit-remote-unshallow~.  #4480

- Added new option ~git-commit-use-local-message-ring~.  #4503

** Fixes since v3.2.0

- Make ~magit-branch-remote-head~ and ~magit-branch-current~ fall back
  to ~:inverse-video~ when the ~:box~ attribute isn't support, i.e. in
  a terminal.  If this change does not have any effect for you then
  your theme probably changes these faces and should stop doing so.
  #4206

- In some cases refreshing a buffer caused the cursor to jump to a
  different position.  #4148

- ~magit-convert-filename-for-git~ did not expand absolute filenames,
  which is necessary because Git does not understand ~~/~.  de1dc8e74

- ~magit-rebase~ did not enable ~--autostash~ by default but the
  documentation says it does.  421be65a3

- ~magit-clone-read-repository~ did not convert filenames before passing
  them to Git.  4aa7d2928

- Due to a regression in v2.90.0, ~magit-wip-log~ and
  ~magit-wip-log-current~ failed to extract the previous tips of the
  wip refs from the reflog (which is relevant when
  ~~magit-wip-merge-branch~ is nil).  c327824b0

- An old attempt to avoid needlessly updating section highlighting
  did not actually succeed.  #3976

- An error occurred when first showing a status buffer and
  ~which-function-mode~ is enabled because that caused Imenu to collect
  items at a time when that is not possible yet.  #4481

- A change in Git v2.32.0 made it necessary to explicitly filter out
  directories when committing to wip worktree refs.  #4499

- Fixed appearance of Gravatar images by forcing their size instead
  relying the service to return the promised size as advertised.
  8771401d4

- ~git-commit-setup~ enabled the major-mode after setting local
  variables, which caused non-permanent variables to be reset.
  ece2cb84d

* Authors

    76  Jonas Bernoulli
     8  Kyle Meyer
     1  Daniel Nagy
     1  Franklin Delehelle
     1  Jonathon McKitrick
     1  Lin Sun
