Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Emacs git history interface

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 README use fit-window-to-buffer instead of resize-temp-buffer-window March 14, 2013
Octocat-spinner-32 egit.el
README
;; 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.

egit can visit a version of a file as it appeared relative to a
commit. When viewing a branch history egit will prompt for the file. When
viewing a file's history the current file is assumed. This facility breaks
down if a file's content blob changed at some point (e.g., it was renamed).

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. Unfortunately, this is not an unusual situtation. 

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

Something went wrong with that request. Please try again.