2.1. General Points

The 'master' repository is located on BitBucket here: http://bitbucket.org/sinbad/ogre/ . I recommend that developers use the SSH link (with SSH keys if you like) rather than https, because it’s more reliable when doing large transactions because the timeout is far larger.

The master repository will use branches only for official development streams, which in practice means one branch per major stable version, plus the default branch (which is considered "unstable"). For example, this might be the list of branches in the master repository:


When we were using Subversion, we used branches for other purposes too such as experimental work by a core team member which was uncertain for official inclusion, or a student project on Google Summer of Code - we will no longer use branches for these things. Instead all other divergences in the code will be handled by making clones of the repository and not by branches. If these clones need to be public, then a fork should be created on BitBucket, and all those interested can use that. Later on if the work in these forks is to be reintegrated into the master repository, the changes can be either submitted as a patch or (preferably) the changes pulled across with the full commit history, if that makes sense.


If you have some long-running experimental changes in your own private repository, do them in a local clone to keep them separate from changes you will want to push upstream to the master. This is similar Git’s local branches (which are not pushed unless you ask), and in fact there is a non-official Mercurial extension to support this, but I do not recommend it. A clone is simple to maintain and you’ll want to be testing it anyway so having a separate working copy is useful.