View Single Post
  #5   Spotlight this post!  
Unread 28-02-2006, 13:00
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 8,588
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: How do you manage code changes?

We used a dedicated laptop running Debian Linux (stable) as the server. I used cvsd to chroot the cvs pserver process. Each team member had a unique login and a trivial password*. I used viewcvs (now renamed to viewvc) as a web interface to let anyone without cvs knowledge browse the repository. We stored all kinds of stuff in the repository, not just our code. For example, we stored all the rules and updates and other documentation, our team roster, even photos of the robot.

We do not have internet access at our build, but do have an internal wireless lan. When we were at our build location, the cvs laptop is there. When we aren't building, it's at my house accessible over our dsl connection. The laptop ran a dns server such that when it was at our build location, you could use the same address as when you were accessing it over the internet.

The commit philosophy we used was such that you should commit after testing when a test platform was availible, but if a test platform wasn't availible commit once you were happy and the code compiled.

For our programming directory, we stored all the .c, .h, .lkr, .lib, .mcp, all the text readmes, and the .hex file. We wanted to have a complete history of the hex file so we could pull up exactly the program we used for each match, without worrying about library changes or other things like that.

Right now we have a tag for the state it was after ship, and for after each fix-it window. We'll also have a tag for the code as it was in the robot for each match so that the drive team can easily request an old version. Depending on whether significant changes get implemented between matches, we may end up branching.

*We'll probably be switching to a more secure form of authentication next year, I just wanted to get something that worked easily out of the box

Last edited by Joe Ross : 28-02-2006 at 13:10.