Accessing and Running Source Code

Bazaar

A version control system is a system that stores and versions changes made to source code. The NVDA project uses a distributed version control system called  Bazaar (bzr). As compared to traditional (centralised) version control, Distributed version control makes it much easier for people who are not part of the NVDA core development team to contribute, as anyone can maintain their own branch of the code. Branching is extremely simple and branches can be easily merged, which allows for greater flexibility even for the core developers.

Bazaar Client

There is currently no accessible graphical Windows client for Bazaar, so the command line client (bzr) must be used. Most users will want the standalone Windows installer for the command line client available from  Bazaar project files. Bzr can also be run under  Cygwin.

Official NVDA Bazaar Branches

All NVDA Bazaar branches can be found at:  http://bzr.nvaccess.org/nvda/ The main branch of NVDA, known as trunk in Subversion, is located at:  http://bzr.nvaccess.org/nvda/main/

Using bzr

You should probably read the  Bazaar documentation for more information about the bzr command line client. However, here are some quick tips to get you started. Remember that you can use the bzr help command for more information.

Lightweight Checkout

If you are a user who wants to test a particular branch and you do not intend to make your own changes, you probably want a lightweight checkout. This is where you download the current revision of the code, but the server must be accessed for all version control operations. This also means you cannot commit your own code changes, as you do not have access to modify these branches.

A lightweight checkout is performed by passing the --lightweight option to the checkout command. For example, to get a lightweight checkout of the main NVDA branch, you would type:

bzr checkout --lightweight http://bzr.nvaccess.org/nvda/main/

To update this checkout, type the following while in the checkout directory:

bzr update

Making Your Own Branch

The power of distributed (or decentralised) version control systems is that everyone can have their own branch of the code. If you do want to make your own changes to the code and perhaps contribute them to the project, you should make your own branch. You do this using the branch command. For example:

bzr branch http://bzr.nvaccess.org/nvda/main/

You can make your branch mirror another branch using the pull command. You can merge other branches using the merge command.

Shared Repository

If you are going to create multiple branches of the code (which is quite likely), you should probably store them in a shared repository. A repository allows several branches to share common revision information, which saves disk space and bandwidth and makes branching faster. You can create a repository as follows:

bzr init-repo nvda

This creates a repository in the directory called nvda. Any branches created inside this directory will use this repository.

Preparing, Running and Building the Source Code

Instructions for preparing, running and building the source code can be found in the file readme.txt in the NVDA source checkout.