Monday, March 7, 2011

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

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/...?

From stackoverflow
  • 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.

    Alex Ott : thank you Joe. I'm currently try to build list of requirements for new git support module, and i'll take your opinion into account.
  • 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.
    Alex Ott : blame is already available as git-blame minor mode, so it could be used without problems

0 comments:

Post a Comment