If you want to know how we keep track of OpenSim's history or you want to contribute to OpenSim, you need to know about git and GitHub.

OpenSim on GitHub 

Our official GitHub organization is opensim-org: https://github.com/opensim-org.

Git terminology

Before reading, please view the GitHub General WorkFlow Page

Master branch

The master branch is the most up-to-date, stable version of the code.  This branch is maintained by the OpenSim Team. Usually, people do not commit directly onto the master branch.

Branches

Branches other than the master branch are used to work on new code design, fix bugs and experiment. Branches are merged to the master using pull requests and can only be merged if all tests pass. A conceptual map of how this branching works can be found   and  here.  

Tags and Releases 

Tags and Releases are references to a specific commit in the repository, marking for specific moments in the development history. We use tags solely to mark the commit used for a release of the software. GitHub lists all the releases/tags in the repository.



Git Clients for Windows

Here are some ways to use Git for windows users:

Git Bash (Git Shell)A command window or shell that is controlled using typed commands. Requires a knowledge of the commands available. 
TortoiseGITFor user's used to tortoiseSVN, tortoiseGIT gives functionality through 'right-click' cammands on folders and files in your workspace. 
GitHub for windowsA simplified, clean GUI that gives all the main functionality with simplified features. 

 

GitHub resources

 

  • The git book. Really well-written. If you want to understand what's going on, look here.
  • Interactive way to learn the basics of command-line git.
  • Pretty thorough description of different git commands

List of git/github cheat sheets:

 

Contributing using forks

We welcome any contribution to our source code! However, only certain people have write access to the repositories in our organization. This is done to ensure we can review the changes people want to make to OpenSim. Here's the process to contribute:

  1. Make a fork of one of the opensim-org repositories.
  2. Clone your fork to your computer.
  3. Make your changes to OpenSim, and commit them.
  4. Push your changes back to your fork on GitHub.
  5. Go to the GitHub website and open a pull request to the master branch of the opensim-org repository you want to contribute to.

This diagram illustrates forks, clones, pull requests, pushing, and pulling: