Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

It seems that there are a lot of different ways to work with Mercurial from within Emacs. (In case it matters, I'm using Emacs 24.1.1 and Mercurial 2.5.2 on Ubuntu 12.10.) I have found the following possibilities:

  1. Use mercurial.el, provided with the Mercurial package. This was developed under XEmacs, and it says that it may be less useful in GNU Emacs because vc-mode supports Mercurial directly as of version 22.3.
  2. Emacs vc-mode. However, the linked page says that the push and pull operations are broken as of Emacs version 23.2.1. I tried this out a little bit, and indeed I could not see any way to push to or pull from my repository, although the other features seemed to work ok.
  3. DVC, another Emacs mode that claims to be better suited to distributed version control systems such as Mercurial.
  4. Monky, don't know anything about this one.
  5. aHg. I tried this out once a couple of years ago briefly and quit using it, but I don't remember why.

I have been using Mercurial just from the command line, but I'd really like to be able to integrate this into my Emacs workflow. I am overwhelmed with the possibilities and not sure what works and what doesn't with each solution.

What is the best way to use Mercurial from within Emacs?

share|improve this question
I would have added links to DVC, Monky, and aHg but I'm only allowed to post 2 links at a time. – MTS Mar 31 '13 at 0:09

I've been most happy with Monky, but that said, if you're familiar with Magit you might be slightly disappointed. It is even more disappointing if you are used to using the histedit plugin to mimic git's rebasing and history editing before pushing.

Prior to using Monky, I was reasonably happy with aHg. While it has been a while since using it, my preference for it was b/c it was similar to psvn, which was a great mode for working with svn. It is actively developed, so there is a chance it has grown more features to help with things like editing history, rebasing branches, pushing upstream, etc.

Current development notwithstanding, I prefer Monky.

share|improve this answer

I've been quite happy with vc-mode, doing pulls and pushes from M-x eshell. I enjoyed having the same interface as for other version control systems.

share|improve this answer
What is the difference between using M-x eshell and M-x shell? – MTS Apr 2 '13 at 20:36
M-x shell launches your usual shell, bash, zsh, etc. M-x eshell is a shell implemented in Emacs Lisp. I prefer eshell, but it's mostly a matter of taste. – legoscia Apr 2 '13 at 22:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .