Here are some resources related to the Mercurial
(also sometimes called Hg
) revision control system.
- You can just install TortoiseHg since it comes with Mercurial (no need to install both separately). TortoiseHg is to Mercurial as TortoiseSVN is to Subversion.
- You should use your distro's package manager to install Mercurial. See the Mercurial download page for more info.
- TortoiseHg's Linux version provides you a Nautilus extension for GUI support.
- See the OtherTools page in the Mercurial Wiki for more GUI client options.
- Install Mercurial using the standard installer. (You can also install it from MacPorts or Fink instead if you prefer).
- Murky and MacHg are GUI clients that visualize repository history or file differences and let you perform common tasks like committing, pushing and pulling.
- TortoiseHg works on OS X too.
Issue Tracking Integration
- Note: If we use a third-party source code hosting service, issue tracking and a wiki are usually provided as part of that package.
- Trac has a plugin that allows changing the versioning system back-end from SVN to Mercurial
Continuous Integration Support
- Hudson has a plugin that allows it to pull from Mercurial repositories before building.
See the OtherTools page in the Mercurial Wiki for a more comprehensive listing.
Tutorials, Guides, Documentation
The answers to the StackOverflow question How do I Use Mercurial? list some good tutorials for getting started with Mercurial. Below is a short list of good resources:
Note that the Getting Started section of the project front page has links to all of these and more.
Converting an SVN Repository to Mercurial
This method of cloning an SVN Repository into a Mercurial Repository preserves full commit history, tags and all.
- Make sure you're running a recent hg (at least 1.1)
- Enable the Convert extension by adding the below to your Mercurial config file (~/.hgrc on *nix, C:\Documents and Settings\USERNAME\Mercurial.ini on Windows):
$ python -c "import svn.core; print svn.core.SVN_VER_MINOR"
- (Optional:) Provide a mapping of SVN usernames to full names and emails in a text file before starting the conversion (I don't think you can do this afterwards, at least very easily):
alir=Ali Rantakari <email>
patricka=Patrick Ausderau <email>
- Start the Conversion (this will take a long time). Omit the --authors argument if you don't have a text file with the authors map:
$ hg convert --authors authors-list.txt http://remoteSvnRepo.com/svn localHgRepoDir
The conversion should automatically find the trunk, tags and branches folders from under the SVN path that you specify and use their data appropriately.