summaryrefslogtreecommitdiff
path: root/contrib/emacs/git.el
Commit message (Collapse)AuthorAgeFilesLines
* git{,-blame}.el: remove old bitrotting Emacs codeÆvar Arnfjörð Bjarmason2018-04-161-1704/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The git-blame.el mode has been superseded by Emacs's own vc-annotate (invoked by C-x v g). Users of the git.el mode are now much better off using either Magit or the Git backend for Emacs's own VC mode. These modes were added over 10 years ago when Emacs's own Git support was much less mature, and there weren't other mature modes in the wild or shipped with Emacs itself. These days these modes have few if any users, and users of git aren't well served by us shipping these (some OS's install them alongside git by default, which is confusing and leads users astray). So let's remove these per Alexandre Julliard's message to the ML[1]. If someone still wants these for some reason they're better served by hosting these elsewhere (e.g. on ELPA), instead of us distributing them with git. However, since downstream packagers such as Debian are packaging this as git-el it's less disruptive to still carry these files as Elisp code that'll error out with a message suggesting alternatives, rather than drop the files entirely[2]. Then rather than receive a cryptic load error when they upgrade existing users will get an error directing them to the README file, or to just stop requiring these modes. I think it makes sense to link to GitHub's hosting of contrib/emacs/README (which'll be updated by the time users see this) so they don't have to hunt down the packaged README on their local system. 1. "Re: [PATCH] git.el: handle default excludesfile properly" (87muzlwhb0.fsf@winehq.org) -- https://public-inbox.org/git/87muzlwhb0.fsf@winehq.org/ 2. "Re: [PATCH v3] git{,-blame}.el: remove old bitrotting Emacs code" (20180327165751.GA4343@aiede.svl.corp.google.com) -- https://public-inbox.org/git/20180327165751.GA4343@aiede.svl.corp.google.com/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Replace Free Software Foundation address in license noticesTodd Zullinger2017-11-091-3/+2
| | | | | | | | | | | | | | The mailing address for the FSF has changed over the years. Rather than updating the address across all files, refer readers to gnu.org, as the GNU GPL documentation now suggests for license notices. The mailing address is retained in the full license files (COPYING and LGPL-2.1). The old address is still present in t/diff-lib/COPYING. This is intentional, as the file is used in tests and the contents are not expected to change. Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* emacs: make 'git-status' work with separate git dirsEnrico Scholz2012-11-261-1/+1
| | | | | | | | | | | | | | | | when trying 'M-x git-status' in a submodule created with recent (1.7.5+) git, the command fails with | ... is not a git working tree This is caused by creating submodules with '--separate-git-dir' but still checking for a working tree by testing for a '.git' directory. The patch fixes this by relaxing the existing detection a little bit. Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Acked-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Don't use font-lock-compile-keywordsLawrence Mitchell2011-04-031-3/+10
| | | | | | | | | | | | | If font-lock is disabled, font-lock-compile-keywords complains. Really what we want to do is to replace log-edit's font-lock definitions with our own, so define a major mode deriving from log-edit and set up font-lock-defaults there. We then use the optional MODE argument to log-edit to set up the major mode of the commit buffer appropriately. Signed-off-by: Lawrence Mitchell <wence@gmx.li> Acked-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Use git-add-file for unmerged files, remove git-resolve-fileMartin Nordholts2009-09-091-12/+1
| | | | | | | | | | | Use `git-add-file' to mark unmerged files as resolved in the *git-status* buffer to be consistent with git's CLI instructions. Also remove `git-resolve-file' to make it clear that that "R" is a now a free keybinding. Signed-off-by: Martin Nordholts <martinn@src.gnome.org> Acked-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Clarify documentation of git-commit-treeDavid Kågedal2009-08-061-5/+8
| | | | | Signed-off-by: David Kågedal <davidk@lysator.liu.se> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Improve the confirmation message on remove and revert.Alexandre Julliard2009-02-211-2/+6
| | | | | | If there's only one file, print its name instead of just "1 file". Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Make sure that file lists are sorted as they are created.Alexandre Julliard2009-02-211-13/+16
| | | | | | | | | | | This avoids a possibly redundant sort in git-update-status-files and git-status-filenames-map, and allows callers to continue using the list without having to copy it. It also fixes the confusing success messages reported by Brent Goodrick. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Add some notes about Emacs versions compatibility.Alexandre Julliard2009-02-071-2/+10
| | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Use integer instead of character constants in case statement.Alexandre Julliard2009-02-071-15/+15
| | | | | | This is for compatibility with XEmacs. Reported by Vassili Karpov. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Set a regexp for paragraph-separate in log-edit mode.Alexandre Julliard2009-02-071-0/+1
| | | | | | | This allows using fill-paragraph on the log message without interference from the various header fields. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Make git-run-command-region display the error if any.Alexandre Julliard2009-02-071-19/+19
| | | | | | This makes it easier to figure out why a commit has failed. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Add commands for cherry-pick and revert.Alexandre Julliard2009-02-071-0/+42
| | | | | | | | Support for cherry-picking and reverting commits, with automatic formatting of the commit log message. Bound to C-c C-p and C-c C-v respectively. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Add a command to create a new branch.Alexandre Julliard2009-02-071-0/+14
| | | | | | | | | Prompts for a branch name, create a new branch at HEAD and switch to it. Bound to C-c C-b by default. Based on a patch by Rémi Vanicat <vanicat@debian.org>. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Add a checkout command.Alexandre Julliard2009-02-071-2/+31
| | | | | | | | | Prompts for a branch name and checks it out. Bound to C-c C-o by default. Based on a patch by Rémi Vanicat <vanicat@debian.org>. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Allow to commit even if there are no marked files.Alexandre Julliard2008-11-231-23/+20
| | | | | | | This can be useful to commit a merge that didn't result in any changes. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Add possibility to mark files directly in git-update-status-files.Alexandre Julliard2008-11-231-5/+3
| | | | | | | This avoids the need to go through the list twice, which helps performance on large file lists. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Add an insert file command.Alexandre Julliard2008-11-231-0/+7
| | | | | | | This allows to insert a file in the buffer no matter what its state is, making it possible for instance to remove an up-to-date file. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Never clear the status buffer, only update the files.Alexandre Julliard2008-11-211-84/+85
| | | | | | This makes it unnecessary to save/restore the file marks. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Fix git-amend-commit to support amending an initial commit.Alexandre Julliard2008-11-211-3/+7
| | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Properly handle merge commits in git-amend-commit.Alexandre Julliard2008-11-211-8/+9
| | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Simplify handling of merge heads in the commit log-edit buffer.Alexandre Julliard2008-11-211-8/+7
| | | | | | | | Use a single Merge: header instead of one Parent: header for each parent, and don't list the current HEAD as a merged head. Support symbolic references too. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Remove the env parameter in git-call-process and ↵Alexandre Julliard2008-11-211-28/+26
| | | | | | | | | git-call-process-string. All callers that need to change the environment now set process-environment themselves. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* git.el: Improve error handling for commits.Alexandre Julliard2008-11-211-17/+29
| | | | | | | Display all errors happening in the various subcommands of the commit sequence, and abort on any error. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
* Rename .git/rebase to .git/rebase-applyJohannes Schindelin2008-07-211-4/+4
| | | | | | | | | | With git-am, it sounds awkward to have the patches in ".git/rebase/", but for technical reasons, we have to keep the same directory name for git-am and git-rebase. ".git/rebase-apply" seems to be a good compromise. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Rename ".dotest/" to ".git/rebase" and ".dotest-merge" to "rebase-merge"Johannes Schindelin2008-07-151-4/+4
| | | | | | | | | | | Since the files generated and used during a rebase are never to be tracked, they should live in $GIT_DIR. While at it, avoid the rather meaningless term "dotest" to "rebase", and unhide ".dotest-merge". This was wished for on the mailing list, but so far unimplemented. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Revert "git.el: Set process-environment instead of invoking env"Karl Hasselström2008-06-021-4/+7
| | | | | | | | | This reverts commit dbe48256b41c1e94d81f2458d7e84b1fdcb47026, which caused mis-encoding of non-ASCII author/committer names when the git-status mode is used to create commits. Signed-off-by: Karl Hasselström <kha@treskal.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Set process-environment instead of invoking envClifford Caoile2008-04-211-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the similar patch from David Kågedal [1], "this will make it a little less posix-dependent and more efficient." However, there are two other areas that need to replaced, namely git-run-command-region and git-run-hooks. This patch implements the changes of [1] onto those Emacs Lisp functions. If unpatched, using the git port "msysgit" on Windows will require defadvice changes as shown at [2] (also explained at 4msysgit.git [3]). I have tested git-run-command-region on msysgit, because this is always called by git-commit (via git-commit-tree <- git-do-commit <- git-commit-file). However, I could not test git-run-hooks because it currently does not work on the Emacs Windows port. The latter reports the hooks files as a+rw and a-x, despite msysgit and cygwin chmod setting on the respective files. References: [1] f27e55864317611385be4d33b3c53ca787379df9 [2] http://groups.google.com/group/msysgit/browse_thread/thread/b852fef689817707 [3] http://repo.or.cz/w/git/mingw/4msysgit.git?a=commit;h=3c30e5e87358eba7b6d7dcd6301ae8438f0c30ea Signed-off-by: Clifford Caoile <piyo@users.sourceforge.net> Acked-by: David Kågedal <davidk@lysator.liu.se> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* specify explicit "--pretty=medium" with `git log/show/whatchanged`Denis Cheng2008-03-051-1/+1
| | | | | | | | | | | The following patch will introduce a new configuration variable, "format.pretty", from then on the pretty format without specifying "--pretty" might not be the default "--pretty=medium", it depends on the user's config. So all kinds of Shell/Perl/Emacs scripts that needs the default medium pretty format must specify it explicitly. Signed-off-by: Denis Cheng <crquan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'maint'Junio C Hamano2008-02-291-1/+1
|\ | | | | | | | | | | | | * maint: Documentation cherry-pick: Fix cut-and-paste error git.el: find the git-status buffer whatever its name is git-gui: Paper bag fix info dialog when no files are staged at commit
| * git.el: find the git-status buffer whatever its name isRémi Vanicat2008-02-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | git-status used the buffer name to find git-status buffers, and that can fail if the buffer has another name, for example when multiple working directories is tracked. Signed-off-by: Rémi Vanicat <vanicat@debian.org> Acked-by: Alexandre Julliard <julliard@winehq.org> Tested-by: Xavier Maillard <xma@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Do not display empty directories.Alexandre Julliard2008-02-271-1/+1
| | | | | | | | | | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org> Tested-by: Karl Hasselström <kha@treskal.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Set process-environment instead of invoking envDavid Kågedal2008-02-201-4/+3
| | | | | | | | | | | | | | | | | | | | This will make it a little less posix-dependent, and more efficient. Included is also a minor doc improvement. Signed-off-by: David Kågedal <davidk@lysator.liu.se> Acked-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Better handling of subprocess errors.Alexandre Julliard2008-02-081-37/+51
| | | | | | | | | | | | | | | | Where possible, capture the output of the git command and display it if the command fails. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Check for existing buffers on revert.Alexandre Julliard2008-02-081-0/+8
| | | | | | | | | | | | | | | | | | Refuse to revert a file if it is modified in an existing buffer but not saved. On success, revert the buffers that contains the files that have been reverted. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Added a command to amend a commit.Alexandre Julliard2008-02-081-1/+73
| | | | | | | | | | | | | | | | It reverts the commit and sets up the status and edit log buffer to allow making changes and recommitting it. Bound to C-c C-a. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Support for showing unknown/ignored directories.Alexandre Julliard2008-02-081-9/+29
|/ | | | | | | | | Instead of recursing into directories that only contain unknown files, display only the directory itself. Its contents can be expanded with git-find-file (bound to C-m). Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Make status refresh faster.Alexandre Julliard2008-01-081-11/+13
| | | | | | | | | | | | Don't set the needs-refresh flag when inserting a new file info, since ewoc refreshes it upon insert already; this makes a full refresh twice as fast. Also make git-fileinfo-prettyprint a little faster by not retrieving permission values twice. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Refresh files from their real state upon commit.Alexandre Julliard2008-01-081-10/+12
| | | | | | | | Instead of just setting the state to up-to-date, retrieve the full state again, so that the file type can be displayed properly. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Make sure we never insert the same file twice.Alexandre Julliard2008-01-081-3/+3
| | | | | | | | Skip non-zero stage files during git-ls-files -c, they are handled later. Also fix git-insert-info-list to merge duplicate file names. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Display file types and type changes.Alexandre Julliard2008-01-061-3/+31
| | | | | | | | | Handle the T status from git-diff-index to display type changes between file/symlink/subproject. Also always show the file type for symlink and subprojects to indicate that they are not normal files. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Retrieve the permissions for up-to-date files.Alexandre Julliard2008-01-061-2/+18
| | | | | | | | | This allows displaying correctly the executable flag for the initial commit, and will make it possible to show the file type for up-to-date symlinks and subprojects. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Support for getting diffs from inside the log-edit buffer.Alexandre Julliard2008-01-061-2/+12
| | | | | | | | Take advantage of the new log-edit feature that allows to show a diff with C-c C-d while editing the log message. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Added a menu for git-status-mode.Alexandre Julliard2007-12-111-1/+42
| | | | | | | | Originally written by Rémi Vanicat, I just changed the layout a little. Signed-off-by: Rémi Vanicat <vanicat@debian.org> Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Run git-gc --auto after commits.Alexandre Julliard2007-10-281-0/+1
| | | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Refresh only the changed file marks when marking/unmarking all.Alexandre Julliard2007-10-281-2/+5
| | | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Fix typo in git-update-saved-file error handling.Alexandre Julliard2007-10-281-1/+1
| | | | | | | Spotted by Matthieu Lemerre. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Fix typo in "Reverted file" message.Alexandre Julliard2007-10-281-1/+1
| | | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Reset the permission flags when changing a file state.Alexandre Julliard2007-09-291-17/+11
| | | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git.el: Update a file status in the git buffer upon save.Alexandre Julliard2007-09-291-2/+16
| | | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>