Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which functions are missing in existing Emacs modules for work with git?

Tags:

git

emacs

What do you think - which functions should be implemented to make work with Git from Emacs more comfortable? Which functions are missing in magit/git.el/egg/git-emacs/...?

like image 575
Alex Ott Avatar asked Dec 30 '08 09:12

Alex Ott


People also ask

What is Emacs in git?

Emacs comes with a generic version control front end called VersionControl or VC. It supports Git and many other version control system (vcs). This is a good choice if you use other vcs besides Git or have no desire to use features unique to Git. Git used to include an Emacs front end for Git: git.

How to commit in Emacs?

Committing of changes is performed with the git-commit-file command ( c key), and reverting of changes — with the git-revert-file command ( U key). User can view change log for repository with the git-log-file command ( l key). The d key is prefix key for all changes-related commands.


2 Answers

Things that are essential to me, aside from the core features, are:

  • ediff, i.e. visual diffing so you can see the context of the change properly
  • blame/annotate, like the regular vc mode. With navigation to earlier revisions, color coding, etc.
like image 159
jplindstrom Avatar answered Sep 27 '22 16:09

jplindstrom


I've been playing with git-emacs for a few days. I chose that one after reading about my choices (on your blog post) and trying a few of them out. My thoughts:

  1. git.el - two things stood out from your review

    • it worked like PCL-CVS -- I am familiar with that package (having used it for many years, many years ago) but I was more interested in learning how to do things the git way, and I thought having a familiar paradigm would hinder that learning.
    • the git commands didn't work outside of the status buffer -- I like to integrate at a deeper level than that, otherwise I could just run all of my git commands from the shell and be done with it.
  2. magit - seemed much better in terms of doing things the git way but, again, two things stood out:

    • changing semantics -- You mentioned several commands that behaved differently depending on context. Normally I'm a big fan of -dwim commands, but not when the difference is between un-staging a file and deleting it!
    • it didn't look as nice as some of the others (e.g. egg or git-emacs); on the plus side, I did like the graphical branch representations
  3. egg - I actually tried this one

    • magit with a better interface, and while it looked much better than magit, I was concerned that it wouldn't keep up with magit development
    • there was next to no documentation on it; I ran into some problem (I can't remember what) and couldn't find out the solution, so I just ditched it and moved on to....
  4. git-emacs -- looked nice and had nice documentation

    • things I like: documentation, ease of use, look and feel, lots of useful commands built-in, direct access to any git command via `git-cmd', support for git-blame
    • things I dislike: ido (not having it be configurable is a major turn-off to me and hints at an attitude of "I know best" on the part of the author), lack of some basic commands like stash, lack of any customizations (again, hinting at an "I know best" attitude)

As I'm still in my infancy in terms of learning git itself, it's hard to say what else is missing from these packages. I plan on asking the author of git-emacs if he's interested in patches, as I would likely introduce customizations (of ido, faces and other normal things). Hope this helps somewhat, anyway.

like image 45
Joe Casadonte Avatar answered Sep 27 '22 16:09

Joe Casadonte