Git Product home page Git Product logo

egit's Introduction

;; 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

egit's People

Contributors

rdparker avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.