MSX Assembly Page

The MAP repository

The MSX Assembly Page source code is stored in a Mercurial revision control repository, which you can find here:

Below you will find short instructions on how to work with Mercurial.

If you have push rights, please be sure to verify your changes on the website after pushing changes to the repository.

The process to get push access is not very well defined, but usually after you’ve submitted a couple of good changes and grown accustomed to the structure of the site, you can get access.

About Mercurial

Mercurial is a distributed revision control system. You can download Mercurial from their website. For Windows users, I recommend you get TortoiseHg GUI shell extension which also installs the command line-tools. There is also an Eclipse extension. Below I will give you short instructions on how to use Mercurial from the command-line, but you should be able to find the corresponding commands in TortoiseHg relatively easily.

You start by cloning the main repository on your local system:

hg clone

Now you can start making changes. Every time you make a unit of related changes, you can commit them into your local repository:

hg commit -m "A short message describing your changes"

If you add new files, you have to use hg add to make the revision control system notice them. Alternatively, you can use the TortoiseHg commit dialog to add them before committing.

If in the meanwhile there are changes published on the server, you can pull them into your local repository:

hg pull

And update your working copy:

hg update

Note here that pull will not immediately update your working copy. If you wish however you can automatically update after a pull by adding the -u option. Note for TortoiseHg users: all these commands are available under the ‘Synchronize’ option in the TortoiseHg context menu.

Once your changes are ready for publication, you can push all the changes that you committed locally into the main repository, and they will automatically appear on the website. Note that in order to push, you need to use HTTPS. You can configure a default push location in Mercurial so that it will remember it.

hg push ssh://

In order to be able to push changes directly into the repository you need push rights, so if you do not have those then instead you can send your changes to the MAP by email using an ‘email-bundle’. You can do this easily from TortoiseHg, to use it from the command-line you need to first enable the Patchbomb extension that is bundled with Mercurial.

For more information, consult the Mercurial website or read the Mercurial book. The command-line tool also has help pages available if you type hg help.