Homepage: https://github.com/jimhourihan/egit
Updated:
Emacs git commit history interface ala gitk and qgit
This file contains an interface to git commands which are not (currently) part of git.el. Primarily, this is a view of the git commit history with the ability to mark ranges and/or single commits and operate on them. Mutiple branches/tags/ref interfaces can be active at the same time. To install: put this file on the load-path and place the following in your .emacs file: (require 'egit) -or- (autoload 'egit "egit" "Emacs git history" t) (autoload 'egit-file "egit" "Emacs git history file" t) (autoload 'egit-dir "egit" "Emacs git history directory" t) `M-x egit' shows commit history for a given branch, tag, or other ref. With a prefix argument, you supply a directory (to identify the repo), the ref, and a maximum number of commits to show -- e.g., M-x C-u egit `M-x egit-file' will show commits related to a specific file `M-x egit-dir' will show commits related to files within a directory egit is currently useful for browsing the history. It has only a few operations implemented (cherry-pick, revert, tag, delete tag) -- and those are implemented only minimally. The framework for operating on a single or multiple commits (that have been marked) already exists, so adding new git commands should be relatively easy. There isn't a way to specify a range of commits (unless you use the marked commits to do so). There should probably be a dedicated method of creating a range to pass to git commands. It might be good to have a facility like qgit's in which user defined commands can be added (although the default set should be fairly complete) The "occur" feature needs something like himark to highlight the occur regex in the comment buffer(s). There's a piece of code in there that currently calls himark that's commented out. The idea is to "grep" through comments. For example to highlight all cherry picked commits search for "cherry", etc. Start up time can be significant when 10s of thousands of commits are being displayed so the default is 500. You can increase that after the fact by clicking on the number of commits message at the end of the buffer. TODO - graph representation along the left of the commit buffer - graphical rep of a commit range (like the marks) - git reset functions - branch creation at a commit - patch creation from a set of commits - show list of authors/sign-offs related to commits - make occur more useful - speed up - lazy resolve parent commits - make delete tag default to one of the current commit tags WISH - incrementally load commits