Wednesday, January 21, 2009

Emacs and GIT

I wrote a tutorial a while back to try and get my head around DVC which is a distributed version control system for emacs which claimed GIT support. It's quite good but general concensus on the emacs IRC channel was that Magit was the easiest to use and had far better handling of staging and branching. Well, there's a new boy in two and he's the new cock of the walk.

See Egg for more details.

It has a colour coded interface with context help and "just works".

If you are using Git and need more than the Emacs built in Version Control interface to Git (present in Emacs 23) then I believe you could do a lot worse than Egg.

I need to update my Emacs page to recommend Egg.


  1. Hi Richard,

    thanx for the plug! as for "just works", well I've received a bunch of bug reports and they're all ... egg's bugs!:(

  2. Aha commenting does work ;

    The only thing that confuses me is the us of branches a little. But I think thats more git in general than egg. e.g I cant see how to just back to plain master branch. I checkedout "other version" of source but its ctill tagged as my "rgr2" branch when I commit it.

  3. in git, HEAD determines the branch. "checkout" one or more files only extract the contents from the database to the working dir. Checkout (without filenames) does move HEAD to another branch if needed.

  4. In Egg, the easiest way to switch to another branch is to go the log buffer, put the cursor on the branch name and type "o".

  5. That's great. Thanks for the followups.

  6. In case you pop back, how can I make egg realise a file is part of a GIT repository one or two directories higher up?

  7. It should already does that. If it doesn't would you mind post a repo somewhere that I can use to debug/reproduce?!


  8. Seems to work. There is one issue, but let me check and double check so as not to waste your time.