Assembla home | Assembla project page
 

Mercurial Eclipse Plugin Dev

This is the Development Wiki/Sourcecode repository and Bugtracking of MercurialEclipse the Eclipse plugin for Mercurial (Hg) Source Control Management system.

Please visit MercurialEclipse for the plugin homepage.

FAQ

Visit the FAQ

Dependencies

You need Eclipse >= 3.3 and command line Mercurial installed with the imerge extension (for Mercurial <= 1.0.x).

For interfacing with SVN via MercurialEclipse?, you need the HgSubversion extension and its dependencies installed and activated.

For using the Forest functionality, you need the Forest extension installed and activated.

For using the cryptographic signing feature of Mercurial (hg sign), GnuPG needs to be installed.

Don't use gcj as Java runtime as this does not work with MercurialEclipse? due to problems spawning subprocesses in gcj.

Install the plugin

There is a Eclipse Update site, In Eclipse this should be added in eclipse under "Help"->"Software Updates"->"Find and install..." select "Search for new features to install" and then in the new window select the "New Remote site..." button and add this

Name: Vectrace (Mercurial Eclipse plugin)
URL: http://www.vectrace.com/eclipse-update/

You can also try to download the jar file yourself and put in your <eclipse root>/plugins dir from this link, higher numbers are newer plugins

http://home.zingo.org/eclipse-betaupdate/

Here is also a developer eclipse update site it might have slightly newer version not yet released to the public, to use it please add this in the eclipse update site selection.

Name: MercurialEclipse development site
URL: http://home.zingo.org/eclipse-betaupdate/

And finally, if you want to try out the most recent changesets in our development repository, have a look at Hackers deploy section.

On MacOSX, Eclipse may only find Mercurial, if PYTHONPATH is set correctly. On my system it was done like this:

$ cd
$ mkdir -p .MacOSX

# create a file environment.plist and set the pythonpath
# it should look like this:

$ cat .MacOSX/environment.plist 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>PYTHONPATH</key>
	<string>/usr/local/lib/python2.5/site-packages</string>
</dict>
</plist>

Releases

Add new stuff when commited.
1.2.941 2008-12-01 Bastian: Hide authentication in console. Don't save passwords in repository URL (r933). Shelve/Unshelve functionality. We don't use an extension for this, only patch ex- and import (r921). Steeven: New import/export wizards for patches (r917).
Beta 1.1.901 2008-11-19 Bastian: QNewWizard and QRefreshWizard can now spell-check the text entered as patch description (r897). Fixed problems with projects that are a subdirectory of a repository (r892). Restructured Team menu (r891). Added support for bookmarks. You now can create, rename, delete and switch to bookmarks (r890). Added a rebase wizard that provides support for Mercurial 1.1's rebase command (r888). HgSubversion?: Enabled rebase on pull, removed automatic rebase from push, disabled incoming and outgoing page in pull/push (r885 & r886). Pull/Push: Improved operation's output a bit. (r885).
Beta 1.1.884 2008-11-06 Bastian: Added --rebase option to Pull wizard (r868). It is only visible when rebase is available as a command. GUI cleanup: Only show forest options when forest extension is available (r869). Support for read-/write access to SVN repositories via the hgsubversion extension, whose options are integrated into clone, pull and push (r882). It's only visible, if the extension is available. Zingo Removed leftover of old ugly icons and added HG official logo instead on those places
1.1.867 2008-09-30 Bastian: Refactored and spiced up share wizard (r816), Parse log output with Sax parser instead of DOM parser (r820). Spell check in commit dialog, if spell checking is enabled within Eclipse (r821 & r826). Added signature verification of signed changesets to history view (r833, #28). Fix commit bug. Fix exception in history of a folder, menus in patch queue View, fixed bug not to set root persistent property. Additionally to .hgignore, we're now using Eclipse's ignore settings for determining whether a file is ignored. Support for pulling/pushing/cloning a forest. History and all changeset tables now get changesets only when needed (batching of hg log) Georg K: Better newline handling, run decode filters in get file contents, Better commit message parsing StefanC: Enable copy of history information, Major code cleanup, fixed path problem in zip, quote commit messages and username BrianW: speed improvement (cache in hg root lookup)
1.0.751 2008-07-23 Bastian: Added preview page in push wizard for outgoing changesets. StefanC: Add possibility to configure key bindings for key commands.
1.0.743 2008-07-21 Release 1.0 with Release Party Pictures
0.2.586 2008-06-04 Bastian: convert URI to Mercurial ones on Windows.
0.2.579 2008-06-01 Brian: Using styles for parsing history/log. Bastian: New add branch wizard to complete branch support. Disconnect entry in Team menu.
0.2.536 2008-05-25 Bastian: Support for hg strip. Grouped recover-actions to one group in menu. Added support for projects above project level to add (should work now for whole plug-in), added hg serve from within Eclipse, Fetch/Pull/Push now have a consistent layout and can be given a revision to pull/push up to, revised clone dialog, fetch replaced by similar functionality within pull wizard for being able to use internal eclipse merge
0.2.511 2008-05-18 Bastian: Additional preferences for parametrizing hg, Less flickering of decorator images and Transplant BrianW: Branch support
0.2.4902008-05-14Bastian fixed rename
0.2.4852008-05-13Humongus lot of changes,
0.2.2392008-04-01EPL 1.0, Simple Annotation by Charles O'Farrell, Sortable columns and better coding standard by StefanC, .hgignore, tag support and a lot of other changes by Jérôme Nègre, import and pull from bundle by Zingo and a few Changes by Sebastian and Kim Sullivan, hope I didn't forget anyone if I did edit yourself in it's a wiki you're supposed to do it
2008-03-27License is now EPL 1.0 http://www.eclipse.org/legal/epl-v10.html
0.1.1442008-01-30Now it is possible to do Team->"hg log" on folders and not just files
0.1.1432008-01-29Incorporate fix for #164 Improved error logging by StefanG
0.1.1402008-01-29Fix for #81 Added support for follow rename in Team->"hg log" see #161 #162 thanx to StefanG
0.1.1382008-01-09Fix for #155
0.1.1372008-01-09Faster label decoration added by StefanC #93
0.1.1342008-01-08Pull/Push implemented, but no update/merge yet #18
0.1.1302007-10-03Fix for #81 NullPointer? at synchronization repository wizard.
0.1.1292007-10-03Lots of changes from StefanC, #31 revert dialog, #92 deadlock fix for windows, #89 Ignore Resource Filter, #69 resizeable commit, #24 Diff in commit (and revert)
0.1.1212007-09-09Changelog (hg log) in Eclipse History view, you can open old revision in an editor by selecting Open in the right click menu on the revision.

Mailinglist

Google Groups
Subscribe to MercurialEclipse
E-mail:
Go to online mailinglist reposetory

Status

It is possible to create a repository from inside eclipse, add files and view diff's. and Commit it, it's in a shape that it works well but don't have all the extra features:

Implemented mercurial commands

  • hg init
  • hg clone
  • hg push
  • hg pull repo/bundle (no update/merge yet)
  • hg import patchfile
  • hg commit
  • hg add <file>
  • hg remove <file>
  • hg diff <file>
  • hg log <file> (Output in History View you can from History view open old revisions in the editor)
  • hg annotate <file> (Output in console)
  • hg status
  • hg view (Only on the project and if view extension is installed)
  • refactor->move refactor->rename (reports problems but works do a refresh..)

Implemented features

  • Label decorators (see LabelDecorator ) (Might have to be enabled in Preferences: General -> Appearance -> Label Decorations)
  • diff It uses eclipse diff.
  • commit is selective, it will commit the selected files
  • hg view, open up that nice dialog (included in hg)
  • support of repository root below the project root.
  • Annontation in editor

Screenshots

See Documentation page for screenshots and live action shots.

Documentation

Hackers

See Hackers page for developer and code information.

Spinoff Projects

There is a bazaar eclipse plugin based on this plugin http://bazaar-vcs.org/BzrEclipse

User Comments

If anyone is remotely interested, please put a small note below so that I know if there is any interest in this plugin, if there is I might speed up my first release a bit. If you don't know how to add your info below, just use the "Edit this page" button below and feel welcomed to the world of wiki's.

Dizan: "I would really love to have a full working mercurial eclipse plugin. Please continue with your work!"

Zingo: Thanks

Alain: I'm very interested in this plugin however when I loaded it up and tried to use it under Windows it caused Eclipse to hang. This is closed in Ticket [29]

Comments from people downloading the repository:

Yiannis: Your plugin rocks guys, keep up the good work, beers all around if you ever visit to the UK

Gunnar: "I like to see this happen. Mercurial seems like the best distributed CMS with support centralized CMS. However, the command line interface is not

so fun. Seeing EclipseMercurial? happen is a great thing! I've attached a patch. See ticket: #6"

Zingo: Great, this is integrated from [16] - Zingo

gwk: Today must really be my lucky day. I could not dream this would be true! May god bless you :) Yes this is really deerly needed. Maybe I can even help, but my time is really scarce, with four kids :-)

Zingo: 4 wow that two more than me, I must be very lazy in that area :)

ipc: Thanks! A full plugin would be nice. When switching applications (CVS -> Hg) a GUI is great

for getting up to speed quickly.

  • specifically my team needs/wants the equivalent of the CVS TeamSync? feature. Without that, I can't get buy-in for a cvs2hg switch.

Zingo: Ill try my best to get this started, any special feature you would like or miss?

  • "the equivalent of the CVS TeamSync? feature" please exlain more, I have never used the CVS Plugin. add it to a ticket, that will force me to do it :)

Alyx: Thanks a lot, this plug in was one of the few great things missing to Hg.

Zingo: Yeah me to! I was trying to determine if I should go for Hg or Darcs, Hg was a personal favorite but Hg didn't have a Eclipse plugin, thats the story of this plugin :)

Tako: Just found out about your plugin today so I haven't been able to try it yet but please continue working on this because without an Eclipse plugin I'm not going to use Mercurial (for Java) basically :-)

Zingo: It should be usabe right now, but you have to check the console when you do a "status" to check what files are changed. Ill probably start using it on itself later today (2006-06-07).

Ronald: Was asked to look into an Eclipse Plugin for Mercurial. Why re-invent the wheel. How can I help? I'm sure it's best if you wanted additional development we co-ordinate.

Zingo: You alredy have just by evaluating it. You can also add tickets that I will accept/dismiss :)

Panomax: I'm using Darcs in a current project. The Eclipse Darcs plugin seemed to be stalled. Now I am thinking of using Mercurial in a new project. So I googled 'Mercurial Eclipse' today (2006-10-20). That's why I'm here. Your plugin would be quite useful to me. Please keep going! Thanks.

Zingo: Ill try my best to get it little more usable :) Please visit the ToDo Page and edit it to keep me in focus :)

Daniel Holth: I'm interested in MercurialEclipse? because it might open my work up to using better SCM.

Zingo: Don't hesitate to try it out... Mercurial is easy to use and you will probably like it.

loganb: I'm using your plugin at work, it's great, thanks! Still a long ways to go before it is as feature rich as the perforce plugin, but I'm very appreciative of your work so far. It would be awesome, though, if you could publish some docs on how to contribute. I'd like to debug some issues and perhaps submit a patch or two but I know nothing about how to pull the code and setup a good environment to work/debug in.

ccleve, 2007-07-07: Yes, we're very interested. We'd strongly prefer to use Mercurial over Subversion, but the lack of a GUI is holding us back. Most useful features for us: track file moves, deletes, renames; and some kind of integrated merge.

Zingo: Integrated merge is missing, but move,delete and rename should work now (from 2007-07-23).

BryanRJ, 2007-07-24: Nice work, but at the moment it's just a way to avoid having to use the console for SCM. In order to be really useful, there needs to be more integration into the IDE: for example, with CVS I can have annotated editors (in Eclipse 3.3). Merging is crucial, as well. Conflicts happen in distributed SCM.

Zingo: Yes I'm aware of this just bug me about it... I'm not a java programmer and I don't use mercurial to more than this project I also only work on this now and then, but I seem to work more on it when people bug me so just nag :) Please edit the ToDo page... I have started to do some eclipse-SWT tutorials so there is hope that I soon understand how to make the GUI stuff.

a5dF9h, 2007-08-29: The pure existence of this plugin helped me a lot to start using Mercurial instead of Bazaar. Thanks for the good work. Currently I have no experience in the Eclipse RCP framework, but I will give you feedback as I continue using this plugin. BTW see http://www.trac-hacks.org/ for some spam filter solutions, otherwise sooner or later this site will be doomed.

Zingo: Thanx, you know that there exist a plugin for bazaar http://trac.steppenwolf.selfip.net/bzr-eclipse/wiki (it is a spinnoff from this plugin), I have a spam filter installed but I have only recently tuned it, lets hope it works better now.

demerphq, 2007-10-10: The existance of a fully functioning Eclipse plugin for mercurial is seen as a requirement for our company to switch from cvs. Please keep up your good work and help save us from slavery! :-)

Zingo: Ill do my best.

m--s, 2007-10-12: Wow! Please, keep up the hard work, this plugin is really needed! If only "hg merge" and "hg update" were here... these are still obviously not (?), so I have a small question: is it safe to execute these commands outside of Eclipse (by using hg directly), or are there any caveats? I'm asking because maybe this plugin stores some informations internally, independently from ".hg" - is this the case?

StefanC, 2007-10-12: It should be perfectly safe to run hg from the command line (since that is what the plugin does behind the scene) Zingo: 2007-10-13: My Idea is that it should always be safe to run the command line in parallel, only decorators and stuff like that might need some refreshing inside Eclipse. If caching of commitmessages is added the comand line commits will not be detected but that kind of small issues.

halcyon, 2008-04-18: I would like to see the ability to clone a repository and setup the project using the New Project wizard, like you can do when importing a project from CVS.

Zingo: 2008-04-28: This is already available select menu: "File"->"New"->"Other", and then "Mercurial"->"Clone..." see documentation page above I have added some screenshots.

halcyon, 2008-04-28: I'll describe the process with the CVS plugin on the ToDo page. Thanks very much for your work, the plugin helps a lot.

Bernd, 2008-04-26: I was totally unaware of Mercurial before I say some of the OpenJDK projects. We are a big Eclipse using shop and have focused on CVS because of the good team provider. However CVS is so limited that we also search for alternatives (CVSNT is just not good supported in Eclipse, and SVN is slowly gaining support). I would much prefer a distributed tool like Mercurial, and all it requires to switch 50++ developers is your plugin in a stable version :)

Zingo 2008-04-28: I like to think it is quite stable, but it is not so feature rich, or at least it wasn't until about right now, I have got alot of patches from various people (Thanx everyone) next release will have a lot new stuff.

qualidafial 2008-10-08: This is good stuff. Where does mercurialeclipse look for the .hg folder? I have multiple eclipse projects hosted as individual folders in the same HG repository and mercurialeclipse doesn't seem to recognize that they are in the repository. Update: Using Team -> Share Project seems to convince mercurialeclipse to recognize the repository, but it is still not showing any status decorators on the icons

Steve 2008-10-15: This is good. However the UI seems to assume a 1:1 mapping between repositories and projects. I map my repository onto the workspace and store multiple projects in a single repository. This works well however it is very awkward to extract a new project from the existing repository. There needs to be a "New Project" option that simply extracts the project rather than clone the repository. In other respects, the plugin is working fine.

Scott Sinclair 2008-11-26: Excellent plugin, its come a long way since I first tried it. Thanks for the good work.

Contact me: info At Vectrace dot com where At = @ and dot = .

Acknowledgements

We'd like to thank the people at ej-technologies for providing us with a licence for JProfiler.


Trac

Trac is used to handle features and bugs within the project, Trac is also used to trac changes and updates.

As all Wiki pages, this page is editable, this means that you can modify the contents of this page simply by using your web-browser. Simply click on the "Edit this page" link at the bottom of the page. WikiFormatting will give you a detailed description of available Wiki formatting commands.

For a complete list of local wiki pages, see TitleIndex.

Trac is brought to you by Edgewall Software, providing professional Linux and software development services to clients worldwide. Visit http://www.edgewall.com/ for more information.