Quick Links:

Releases | Mailing Lists | Source Control | Issue Tracker | Regression Tests

Source Code Control


This project uses Mercurial to manage its source code. Instructions on Mercurial use can be found at http://mercurial.selenic.com/guide/.

Web Access

The following is a link to the online source repository.


Repository access

To obtain a copy of the current mercurial “tip”, use the “hg clone” command

$ hg clone  http://hg.code.sourceforge.net/p/jikesrvm/code jikesrvm

Committers should clone the repository via ssh, using

$ hg clone  ssh://USERNAME@hg.code.sf.net/p/jikesrvm/code jikesrvm

Access through a proxy

The Mercurial client can go through a proxy, if you configure it to do so. First, edit your “hgrc” configuration file to indicate which proxy to use. The files location depends on your operating system. On Linux or Unix it is called “~/.hgrc”. On Windows it is in “%USERPROFILE%\mercurial.ini”. There is a per-repository version called .hg/hgrc at the top level of each repository. Documentation is here.

There are comments in the file explaining what to do. If you don’t have that file, get the latest Mercurial client and run any command; this will cause the configuration directory and template files to be created.

Example : Edit the ‘hgrc’ file and add something like :

host = proxy.example.com:8000

Write Permission

To commit changes to the repository, execute the following command to commit your changes.

$ hg commit -m “A message”

Unlike subversion, this only creates a local copy of the changes. To push this back to the public repository,

$ hg push

which uses your sourceforge ssh key for authentication.

Commit messages

Please write a commit message that describes the purpose of the change. If you are committing code to fix a JIRA issue please include the identifier (i.e. RVM-53) in the commit message. If you are committing code supplied by another individual please indicate the individual.

Commit content

Please keep commits as focused as possible. Separate out functional and non functional changes into separate commits. (i.e. Code formatting changes should appear in different commits from feature modification commits.)