Magit

Last updated
Magit
Original author(s) Marius Vollmer
Developer(s) Jonas Bernoulli, Kyle Meyer, and Noam Postavsky
Stable release
3.3.0. [1] / October 4, 2021;2 years ago (2021-10-04)
Repository github.com/magit/magit
Written in Emacs Lisp
Type
  • Git client
  • Text editor plugin
License GPL-3.0-or-later
Website magit.vc

Magit is an interface to the Git version control system (a Git Client), implemented as a GNU Emacs package [2] [3] written in Elisp. It is made available through the MELPA package repository, [4] on which it is the most-downloaded non-library package, with over 3.7 million downloads as of February 2023. [5]

Contents

Like many graphical user interfaces, Magit provides a visual interface to represent version control actions; however, it uses a keyboard-centric model, and also functions as a text-based user interface. [lower-alpha 1] The issue of key-memorization is mitigated through use of a popup menu which displays the actions available to the user [6] — serving as a mnemonic aid. [7]

History

Magit was created by Marius Vollmer in 2008, [8] with Jonas Bernoulli assuming the role of maintainer in 2013. [9] Since its release, Magit has seen a high degree of community involvement, with 350 individuals [10] having contributed code to this free software project as of September 2020.

In 2018 Magit underwent a Kickstarter funding campaign [11] which aimed to fund the maintainer for a year of work. The fundraising was successful and resulted in the project being the 27th most funded software project on Kickstarter. [12] Since the Kickstarter funded period expired donations are encouraged to support the authors development via direct payments, GitHub's sponsorship program and various other crowdfunding services. [13]

Functionality

Magit aims to encapsulate the entire functionality of Git. [1] As such, Magit includes interfaces for [14]

Forges

Magit's Forge provides integration with a number of forges, [15] namely GitHub and GitLab. [16]

Partial support is also listed for: Gitea, Gogs, Bitbucket, Gitweb, Cgit, StGit and SourceHut.

Forge currently allows for [17]

Reception

There has been interest in including Magit in Emacs, but there are issues with obtaining FSF copyright assignment from all contributors to the project. [18]

Magit is favourably covered in a number of blog posts and tutorials and a talk delivered by former Emacs' maintainer John Wiegley. [19] [20] [21]

Magit is included by default in the Emacs configuration frameworks Spacemacs and Doom Emacs. [22] [23]

As of February 2023, Magit is the most starred Emacs package on GitHub. [24]

See also

Notes

  1. In part this is a consequence of being designed for GNU Emacs, which itself can operate as a TUI.

Related Research Articles

The editor war is the rivalry between users of the Emacs and vi text editors. The rivalry has become an enduring part of hacker culture and the free software community.

<span class="mw-page-title-main">XEmacs</span>

XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify XEmacs as free software available under the GNU General Public License version 2 or any later version.

<span class="mw-page-title-main">Maxima (software)</span> Computer algebra system

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

<span class="mw-page-title-main">Gnus</span>

Gnus, or Gnus Network User Services, is a message reader which is part of GNU Emacs. It supports reading and composing both e-mail and news and can also act as an RSS reader, web processor, and directory browser for both local and remote filesystems.

<span class="mw-page-title-main">NEdit</span>

NEdit, the Nirvana editor, is a text editor and source code editor for the X Window System. It has an interface similar to text editors on Microsoft Windows and Macintosh, rather than to older UNIX editors like Emacs. It was initially developed by Mark Edel for Fermilab and released under a very restrictive licence, but today it is distributed under the less restrictive GPL-2.0-or-later and is developed as an independent open-source project by a team of developers. Nedit was also distributed with the IRIX operating system.

<span class="mw-page-title-main">GNU Guile</span> Extension Language

GNU Ubiquitous Intelligent Language for Extensions is the preferred extension language system for the GNU Project and features an implementation of the programming language Scheme. Its first version was released in 1993. In addition to large parts of Scheme standards, Guile Scheme includes modularized extensions for many different programming tasks.

<span class="mw-page-title-main">Mantis Bug Tracker</span> Bug tracking system

Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

<span class="mw-page-title-main">ViewVC</span>

ViewVC is an open-source tool for viewing the contents of CVS and SVN repositories using a web browser. It allows looking at specific revisions of files as well as side-by-side diffs of different revisions. It is written in Python and the view parameters can be modified directly in a URL using a REST style interface.

<span class="mw-page-title-main">Dired</span>

Dired is a computer program for editing file system directories. It typically runs inside the Emacs text editor as a specialized mode, though standalone versions have been written. Dired was the first file manager, or visual editor of file system information. The first version of Dired was written as a stand-alone program independently in 1972 by Dave Lebling at Project MAC, and circa 1974 by Stan Kugell at the Stanford Artificial Intelligence Laboratory (SAIL). It was incorporated into GNU Emacs from the earliest versions, and re-implemented in C and C++ on other operating systems.

The following is a comparison of notable hex editors.

<span class="mw-page-title-main">GNU Bazaar</span>

GNU Bazaar is a distributed and client–server revision control system sponsored by Canonical.

In FOSS development communities, a forge is a web-based collaborative software platform for both developing and sharing computer applications. The term forge refers to a common prefix or suffix adopted by various platforms created after the example of SourceForge. This usage of the word stems from the metalworking forge, used for shaping metal parts.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

<span class="mw-page-title-main">GitHub</span> Hosting service for software projects

GitHub, Inc. is a platform and cloud-based service for software development and version control using Git, allowing developers to store and manage their code. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, is ongoing; its latest version is 29.1, released July 2023.

<span class="mw-page-title-main">Homebrew (package manager)</span> Software installation management software

Homebrew is a free and open-source software package management system that simplifies the installation of software on Apple's operating system, macOS, as well as Linux. The name is intended to suggest the idea of building software on the Mac depending on the user's taste. Originally written by Max Howell, the package manager has gained popularity in the Ruby on Rails community and earned praise for its extensibility. Homebrew has been recommended for its ease of use as well as its integration into the command-line interface. Homebrew is a member of the Open Source Collective, and is run entirely by unpaid volunteers.

In version control systems, a repository is a data structure that stores metadata for a set of files or directory structure. Depending on whether the version control system in use is distributed, like Git or Mercurial, or centralized, like Subversion, CVS, or Perforce, the whole set of information in the repository may be duplicated on every user's system or may be maintained on a single server. Some of the metadata that a repository contains includes, among other things, a historical record of changes in the repository, a set of commit objects, and a set of references to commit objects, called heads.

<span class="mw-page-title-main">Spacemacs</span> Free software

Spacemacs is a configuration framework for GNU Emacs. It can take advantage of all of GNU Emacs' features, including both graphical and command-line user interfaces, and being executable under X Window System and within a Unix shell terminal. It is free and open-source software (FOSS) released under the GPL-3.0-or-later license.

fugitive.vim

fugitive.vim, also called vim-fugitive or just fugitive, is a Git wrapper written as a plugin for the Vim text editor. It was originally developed by Tim Pope, who still maintains the plugin.

<span class="mw-page-title-main">Foliate (software)</span> E-book reading application for Linux

Foliate is a free e-book reading application for desktop Linux systems. The name refers to leaves, meaning "(getting) leafy" or "…-leaved".

References

  1. 1 2 Bernoulli, Jonas. "It's Magit! A Git Porcelain inside Emacs". magit.vc. Retrieved 2022-01-02.
  2. Corbet, Jonathan (July 12, 2017). "Emacs and Magit". LWN.net.
  3. "EmacsWiki: Magit" . Retrieved 2020-09-17.
  4. "magit". Milkypostman's Emacs Lisp Package Archive. Retrieved 2020-09-20.
  5. "Current List of Packages". Milkypostman's Emacs Lisp Package Archive. Retrieved 2020-09-20.
  6. "Transient commands". GitHub . Retrieved 2020-09-17.
  7. Bernoulli, Jonas (2017-09-01). "Magit, the magical Git interface". EmacsAir.
  8. "magit/magit.el". GitHub . Retrieved 2020-09-17.
  9. "Magit 1.4.0 Release Notes". GitHub . 2015-07-01. Retrieved 2020-09-20.
  10. "GitStats - magit". magit.vc. Retrieved 2022-03-08.
  11. "It's Magit! The magical Git client". Kickstarter .
  12. "Discover » Technology / Software » Most Funded Kickstarter" . Retrieved 2020-09-17.
  13. "Please help making it better".
  14. "Top (Magit User Manual)". magit.vc.
  15. Heartman, Thomas (16 March 2020). "Improve your workflow with Forge".
  16. "Forge User and Developer Manual". magit.vc.
  17. "Usage (Forge User and Developer Manual)". magit.vc.
  18. Stallman, Richard (5 July 2017). "Re: In support of Jonas Bernoulli's Magit". emacs-devel (Mailing list). Retrieved 2020-09-19.
  19. Patil, Sachin. "How to use Magit to manage Git projects". opensource.com.
  20. Bachmann, Gunther. "Magit – A textual git interface". itemis.
  21. Wiegley, John. "It's Magit!". YouTube.
  22. "Spacemacs - source control layer". GitHub. Retrieved 2020-09-19.
  23. "Doom Emacs - default modules file". GitHub. Retrieved 2020-09-19.
  24. "GitHub Search for "stars:>1000", Emacs lisp, sorted by most stars". GitHub. Retrieved 2020-09-19.