View Single Post
  #3   Spotlight this post!  
Unread 20-09-2013, 19:38
westin444's Avatar
westin444 westin444 is offline
C++ Programmer
AKA: Westin Miller
FRC #1983 (Skunkworks)
Team Role: Programmer
 
Join Date: Jan 2012
Rookie Year: 2011
Location: Seattle, WA
Posts: 7
westin444 is on a distinguished road
Send a message via MSN to westin444
Re: Version Control Systems

My team has a setup very similar to Spartatroniks'.

We use C++, Git, and GitHub.

Typically the less experienced programmers on are team are delegated to two people per laptop if we do not have enough laptops that can use the IDE. The more senior programmers typically have one person to a laptop unless they are teaching.

The way we handle testing is code gets pushed to a "canary" branch on Git once whomever programmed it feels confident it will work. Depending on the type of change this sometimes involves testing on the robot and sometimes just involves syntax checking and walking through the change.

Once someone pushes a fairly large feature to the canary branch, or someone simply feels like it is time, the canary branch is compiled and downloaded to the robot. This is where most of the bugs get ironed out; whomever is testing just fixes the bugs that come up. Once the code is working properly, with no obvious bugs, it ends up in the release candidate branch. If a major bug is found the feature is either disabled, and an issue submitted on GitHub to the author of that subsystem, or sometimes, if the schedule is tight enough, it just gets fixed then and there as well.

The release candidate branch is simply all the code that has no obvious error, no bugs that occur every time it is run, etc... Once this code has been tested multiple times, and there is a high confidence level on it's lack of bugs, it gets pushed to the stable branch.


The way we addressed connecting to the robot and to the internet is we reconfigured the robot's router to act as a DHCP server. This allows our programmers to quickly jump between the internet-enabled wireless and the robot, without having to reconfigure their IP settings.


As for a simulator for C++... there is none that I know of. There have been a couple projects that worked on one, such as the WPILib Test Harness.