Source Code Repository

= Source Code via Git =

This page is for developers and testers only. If you are just using OpenSim, but not involved in developing it, we ask that you stick to packaged releases, preferably binary distributions.

OpenSimulator uses Git as its source control tool. For more information on installing and using Git, please see Using Git.

Do not run master git in production environments; it is not suitable for that unless you are very familiar with the source code, and can hot fix any piece of it (that probably means you are an OpenSimulator developer). Feedback and testing on the unstable tree is very much appreciated, as that helps us make the next release better.

git clone git://opensimulator.org/git/opensim
 * Latest git revision version (bleeding edge)

After creating the clone, change into the directory and: git reset --hard ########
 * To checkout a specific revision

The current master requires .net 4.6+ (Windows) or mono5+ (Linux)

Where ######## is the unique hash of the version you are interested in.

git clone ssh:// @opensimulator.org/var/git/opensim
 * To clone the repository if you are a core developer

= Source Code via ViewGit Web Utility =

You can also get OpenSimulator code via the ViewGit web utility at

http://opensimulator.org/viewgit/?a=shortlog&p=opensim

You'll see a list of revisions as shown below.



Scroll down, and you will see not just the master head, but also the several tagged releases and working branches.

The tarball or zip source code package for any particular revision can be downloaded by the tar/gz and zip links in the rightmost "Actions" column.

= Repository Structure =

The master git branch contains OpenSimulator code in development.

Each main release will have a separate branch named -post-fixes. For instance, 0.7.3 was released from the branch 0.7.3-post-fixes. It's named 'post fixes' because it contains fixes that are ported from development code in a controlled manner. It starts out as a new branch from the master code line when we start the new release process.

Each release has a tag with the format -release. So 0.7.3 is tagged as 0.7.3-release.

Hence, to get the release code of 0.7.3 from the repository you would use the command.

git checkout 0.7.3-release

Minor point releases (e.g. 0.7.3.1) are also released from the post fixes branch from which their main release was taken. So 0.7.3.1 would be released from 0.7.3-post-fixes. It would also be tagged as 0.7.3.1-release.

One can also retrieve the post fixes branch at any point with a command such as

git checkout -b 0.7.3-post-fixes origin/0.7.3-post-fixes

Please only use this branch if you know exactly what you're doing. The post fixes branch should normally be stable but can still contain broken code between releases.