[RSS]

About

Mercurial: a fast, lightweight Source Control Management system designed for efficient handling of very large distributed projects.

The primary goal of the mercurial.netbeans.org project is to deliver first class Mercurial integration module for NetBeans IDE 6.0 and above. To learn more about its features, check out the Releases below.

The Mercurial NetBeans plugin module is currently under active development. It is designed to work with the new Version Control framework in NetBeans 6.0 and the 6.1 development release. We've been able to base much of our work on the new Subversion module, which has allowed us to make more rapid progress than we otherwise could have. Thanks Maros and Thomas!

News

Dev Releases

Well due to popular demand here's the link to get at our nightly build of the Plugin. It's only for those who are happy living on the bleeding edge, but it's reasonably stable :)
  • NetBeans Nightly Build - as the Mercurial plugin is now built as part of NetBeans trunk, to get the plug-in just download, install and launch the NetBeans nightly build of which ever NetBeans Pack you are using.
    • NetBeans 6.1 Beta (M2) - March 3rd 2008, development snap of the plugin, rev bumped to 1.6, integrated into trunk.
    • NetBeans 6.1 M1 - January 23rd 2008, development snap of the plugin, integrated into trunk.
  • Issuezilla - please log any new issues with the category set to mercurial. For known issues refer to Mercurial Issuezilla Bugs.
  • News in Dev
    • NetBeans 6.1 RC1, code freeze with all the changes detailed in the release below in the RC1 branch, NetBeans 6.1 Milestones.
    • Features (Part of NetBeans 6.1+ Dev, will not be in 6.1)
      • Verify support added, under Recover->Verify.
      • Allow substring searching for username in Show History/Incoming/Out
    • Issues
      • A number of Mercurial 1.0 issues have been fixed, caused by changes in the various error messages, which the plugin needs to capture and handle. Without these fixes some errors come up as generic command warning failures, with the diagnostic information displayed in the Output window, as opposed to a more user friendly dialog.

Releases

Release of Mercurial with NetBeans 6.1 - 28th April 2008

The Mercurial Plugin has been integrated into the NetBeans 6.1, so there is no longer any need to install a separate plugin.
Release Notes
Supported features
  • Previous Releases
    • Status, Diff, Update, Commit, Clone local repository, Push/Pull local repository, Clone Other, Push/Pull Other, Export/Import patches, Show Annotations, Show History (with search), Show Incoming, Show Out, Fetch, Proxy Support, View, Rollback, Revert Modifications, Ignore, Properties, Options, Merge and Resolve Conflicts, Help and i18n
  • Enhancements:
    • Menus - reorganisation of menus to simplify their usage, see Main Menu UI.
    • Clone Other & Paths - a new step has been added to the Clone Other Wizard to allow you to set the Mercurial Paths for default-pull and default-push for the new clone.
    • Clarify and rework Update, Revert and Rollback and add Strip and Backout #127399.
      • Update - update to any revision and also do a forced update if you want
      • Revert - revert to any revision you want in the working dir and choose to create backups of locally modified files if you want.
      • Strip - strip a revision out of the repository, including all of its descendants. Optionally backup the changes in a bundle file that can be reapplied using hg unbundle to reverse the Strip.
      • Backout - backout a changeset selectively. It will create a new backout changeset and commit this to the repo with the specified commit message. If this creates multiple heads you will be given the option to Merge.
      • Rollback - as before rollback the last transaction, commit, push/pull or unbundle. It warns you first before running the command, stressing that it cannot be undone.
    • Searching with Show Incoming and Out. Can search on Message, Username and To revision (From defaults to the earliest available Incoming/ Outgoing changeset when To is specified).
    • Export Diff from Show commands. In Show History and Show Out, added Export Diff beside the Changeset bar Diff and Revert commands, makes it much easier to see exactly what you will be exporting when you choose a given revision.
    • Various Optimization for large repos.

Release 1.5.42 for Mercurial 0.9.5 and NetBeans 6.0 - 22nd February 2008

The Mercurial Plugin rev 1.5.42 is available from the NetBeans 6.0 Stable Update Center as part of the NetBeans 6.0.1 Patch. When NetBeans 6.0 is running. Just click on the globe in the status bar or go to Tools -> Plugins -> Updates tab. Then click the "Reload Catalog" button and follow the installation instructions.
Release Notes
Supported features
  • Previous Releases
    • Status, Diff, Update, Commit, Clone local repository, Push/Pull local repository, Clone Other, Push/Pull Other, Export/Import patches, Show Annotations, Show History, View, Rollback, Revert Modifications, Ignore, Properties, Options, Merge and Resolve Conflicts, Help and i18n
  • Enhancements:
    • Search History improvement - display Search History tab which supports searching on description, username, revision and date. It also supports diff of any of the revisions, revert to a revision and view of a revision #121593.
    • Mercurial Show History - Summary View
      • Mercurial 1.5.42 Mercurial Show History - Summary View
    • Mercurial Show History - Diff View
      • Mercurial 1.5.42 Mercurial Show History - Diff View
    • Show Incoming view - similar to the History tab Show Incoming displays a list of revisions that would be pulled into a repository on the next Pull from the remote repository #117653.
    • Show Out view - similar to the History tab Show Out displays a list of revisions for Outgoing changesets that would be pushed to the remote repository #117653.
    • Support Fetch extension - the fetch extension allows you to pull from a remote repository, update and if needed merge and commit with an automated merge message in one step. This is very useful when working on large collaborative projects #125704.
      • Proxy support - use the IDE proxy settings for Fetch and Pull/ Push to default.
    • Optimize UI for Large repos - a lot of work is going on to support working with large repositories. This is ongoing, but many optimizations are already in this release #126311.

Older Releases

Some screenshots

Mercurial Commit, Diff and Annotate:

Mercurial Commit Mercurial Diff Mercurial Annotate

Full size screenshots: MercurialVersionControlScreenshots

NetBeans QA (for other Open Issues see below): Demo & Tutorials: More Mercurial resources:

Development

Help

Maros Sandor has written a Version Control API overview, which is a very useful starting point for anyone wanting to integrate their VCS into NetBeans 6.0.

Developers

  • John Rice (Sun Microsystems), developer
  • Padraig O'Briain (Sun Microsystems), developer
  • Maroš Šándor (Sun Microsystems), developer

Open Issues

  • Ignore - currently when you put in a directory into the .hgignore file, you will get back all the ignored files in that directory, which causes a performance hit. We work around this by processing the .hgignore file instead of using mercurial, this is far from ideal 126124.
  • Status - There is a general issue with Hg status information and there are proposals to bypass the hg command and read the memory mapped dirstate directly 126156.
  • Revision info - if the user turns on revision labels in the project view there is a performance hit. We need to look at cachinghtis revision information in the file status cache 124895.
  • Interrupting long running tasks - problem with external hg commands is we get no progress on how much of the task has been done, so tasks are essentially atomic for us. At the minute the RequestProcessors we are using for our Actions are not cancelable. If we cache the created Process that is running the command we can call Process.destroy on it, but this only works on Unix and will not work on Windows, as there is no parent child relationship maintained between the shell exec'ed to run the hg command and the hg command itself 131294.
  • Merge - when we do a Pull or a Push into a repository where the original files have diverged and a merge is needed we have to handle this. We are integrated into the current IDE Resolver, but this does not give a 3 way merge. There are changes in Mercurial 1.0 (Merge Tool Configuration) that might require changes in how merge is currently handled by the plugin.

Mercurial Bugs & RFE's

  • Rollback - ability to call hg rollback in information mode to see if a rollback is available and if so what type of rollback. Would also like more information when a rollback is done to tell me what type of rollback has just happened (commit, push/pull etc).
  • Selective Push/Pull - would be great to be able to restrict what was being pushed/ pulled, by excluding certain files.
  • Incoming/Outgoing changes - tracked in issue 117653 Starting work with sources under Mercurial repository, users have to clone the the repository. Mercurial is based on decentralized approach - users wants to push/pull changes from the central repository, mercurial support doesn't provide any functionality that would show changes between local clone and the original one that is was cloned from. There is an externsion that now provides this functionality rdiff that we could look at integrating.

Want to Participate?

Mercurial users who want to try the Mercurial support in the IDE and give us feedback would be a great help. We have our basic feature set now, but want to look at making the common use cases as simple as possible going forward. Any thoughts or ideas on how to do so would be more than welcome.

To send feedback, get support, and receive updates and information about Mercurial support in NetBeans, subscribe to interest@mercurial.netbeans.org