Programming is taking a new step into the world of team coding this year by deciding to use git, a distributed code control system, instead of svn, a centralized system. This means that every copy of the code repository we make has a full copy of all the history (past commits), and is essentially its own repository. The only thing that separates our "main" repository from the ones that are being used by each subteam of programming to develop with is the fact that we decided that it is the main repository.
This works very well for competition, as we can simply use one of the copies of the repository for edits at competition, then upload those changes to the main repository online when we return.
Git alone, however, is not the only key to the new code management system. We will be using a git repository system called github, whose tagline "social coding" fits very well with their service. Essentially, I have a repository, hosted on github, that we have decided is the "main" repository for this year's code. Other programmers on the team (the subteams of programming) will "fork off" of my repository on github, giving them a hosted repository that is a copy of mine. Each team will then develop their projects in parallel, in separate repositories. When the each project is complete, I will "pull" their changes (and any changes that they have pulled in from other people) into the main repository.
This system of "forking off" and then "pulling back" has a great social aspect that creates interactions online between contributors to a project, hence the tagline "social coding". The parallelism of the developement cycle with git also fits well with our team's development cycle.
The world of coding as a team is changing rapidly, and taking advantage of new technologies and styles will ensure that FIRST Robotics stays at the forefront of this development and continues to prepare students for the working world ahead of them. Rocky Mountain Robotics Programming is helping this goal, and our new system of version control for our code will reflect our ability to utilize all recources available to us.