![]() |
Portable Revision Control Server (using Subversion)
Hi all,
I'm throwing out a feeler to determine what teams do for software revision control before and at competitions. Two years ago, I set up an Ubuntu linux server (no GUI, ha!) at our pit running a subversion server. It got some mild use the first year and then a bit more use last year. Next year, I plan on schooling the programmers in the way it's done in the real world. I was wondering what methods teams use for altering software at the competitions. Are there teams that show up and make no modifications to their code (if so, I bow to thee)? Or do teams have only one programmer modifying at a time? Do you use code revision at the competitions? I have already determined that there have been a significant number of situations that call for us to have a portable subversion server. The three main concerns were portability (size, weight, ruggedness, lack of support wires), multiple point access (a few different programmers able to connect simultaneously) and number one it had to be done on the CHEAP! After searching through IPX size motherboards, cases, and other small embedded boxes I finally came up with the simplest and most readily available platform...the Linksys router. Specifically, the WRT54G-TM (or similar variant - the TM is like a GS v3.0 with more RAM and Flash than the standard WRT54G). So, I wonder how many people now think I'm crazy? Well, I can tell you that as of the end of last year's season, I had successfully compiled and tested a custom image of OpenWRT (linux for WRT) for the Linksys router using only the 8MB of built-in flash for storage. I was able to store both our 2009 and 2010 code repositories with enough room for at least another 6 or more years (it uses the heavily compressed file system called JFFS2). The Linksys satisfies all of my requirements beautifully. It is small, light, fairly rugged and only needs one 12V wall wart for power (could be powered from a battery too). It has a built in switch so multiple people can access it (or it could be done wirelessly) and best of all it could cost as little as $20! I bought some used TM versions from eBay for about $23, but that's atypical. One can also do an SD card modification (which I have done but not tested) to increase storage to 4GB or more. I've also installed and tested samba which allows for mapped file storage. I have fairly thoroughly documented the whole process and was wondering if there are any other teams that would be interested in this project. I have already determined that we will try this system out in the upcoming year and I will try to provide feedback on any issues we observe. So far, it appears to run smoothly and about as fast as the linux PC we used previously (even though it's only a 200MHz processor). Any feedback would be great. Thanks. - Bryce P.S. I do also realize that it is possible to keep a local repository on a USB flash drive as well. This project is meant to be a safer and easier alternative. |
Re: Portable Revision Control Server (using Subversion)
Interesting solution.
Do you just turn off the wireless to make it Pit legal or do you get permission from the FTA to run an access point? |
Re: Portable Revision Control Server (using Subversion)
That's a very creative solution.
Our team uses a subversion repository hosted on one of our mentor's servers. As far as what we do during competition, it's complicated. Usually the rule of thumb is to have a "barebones" copy - where only the essential drive code and simplest auton possible exist. This code is to be used only in dire situations when our robot is having chaotic network connectivity issues and we want to check off "code" from our troubleshooting checklist. We always try not to change any code during a competition, but if we ever do it's done by only one programmer and okay'ed/reviewed by the programming mentor. Love the idea of using a linksys router though, really really smart. |
Re: Portable Revision Control Server (using Subversion)
We started using a surplus laptop running linux as a CVS server 5 years ago. When that died, we replaced it with the cheapest netbook we could find. We hook that up via network to the programming computers.
Typically we only have 1 person making changes at competition (at most 2), but revision control is still very important (especially when you're asked to go back to the autonomous from 3 matches ago). The next time our computer dies, I was planning to look into a plug computer like SheevaPlug |
Re: Portable Revision Control Server (using Subversion)
Quote:
|
Re: Portable Revision Control Server (using Subversion)
Our team has been using Bazaar instead of CVS or Subversion, and that's been working out great. The highlights are:
Hope that helps! |
Re: Portable Revision Control Server (using Subversion)
Our team used SVN for source control last year during the build season. We were using Google code for the central repository. But every once in a while we didn't have internet access at the school. This was the biggest problem with Source control we had.
When we went to GSR, we ended up switching to Mercurial. With Mercurial everyone has a copy of the repository so you don't need an internet connection. When we wanted to share changes we had a copy of the repository on a flash drive, and would just share the flash drive and update our repository with the one on the flashdrive. Mercurial also makes merging changes much easier than SVN. |
Re: Portable Revision Control Server (using Subversion)
Quote:
Stay away from Git, though. It's way too easy to break a repository in Git and not understand what's going on. I don't understand what it's doing half the time. |
Re: Portable Revision Control Server (using Subversion)
Quote:
|
Re: Portable Revision Control Server (using Subversion)
We take our SVN server with us to competitions. It goes under the table with a 24 port switch setting on top of it. Great for code changes or reverts to previous tags or other points. We also use it to store our log files from each match. A student is responsible to get the log files from the driver station and commit them to the SVN repository for viewing on any of the computers we have with us, and of course back home. I set up the machine with a DHCP server so when a user in the pits connects they get an IP address that is compatible with the "real" IP address of the server. That way everyone’s access to the server is just like they see when they are at home or at the school. It is all hardwired. Two years ago in Atlanta I did a session about how to build a SVN server. After the session I had a team come up and tell me a horror story about how they lost their code in a crashed hard drive during competitions. If you are reading this and do not have version control I would highly recommend you figure it out and get some. It is wonderful!! One of those things after you have it for a while you wonder how you ever got along without it before.
|
Re: Portable Revision Control Server (using Subversion)
Our team uses Google Code project hosting as our svn repository. This can be a problem during competition when one doesn't have access to the internet though. A simple solution is to just work off one communal laptop to do all the programming. We haven't run into a situation where that computer has broken down on us in the middle of comp; however, we do have backup laptops that contain code from the previous day/night commit to the repository.
Surprised nobody has said anything like using an external hard drive to store the repository. Now that I think about it, you could also do all your work off an external hard drive or a usb drive (sorta mentioned above). |
Re: Portable Revision Control Server (using Subversion)
Yeah, 166 (who mentioned it above <_<) used my external hard drive during GSR, but at Atlanta, we usually either shared a laptop or just plugged the laptops together in an ad-hoc ethernet tangle. The tangle seemed better in my opinion, because it was easy to pull from each other while still being connected to both the robot and the dashboard, where we had FTP'd the log files at the end of the match. This way, we could stay constantly connected, download the logs, fix any problems (I started typing "people". Freudian slip?), and upload any required fixes.
|
Re: Portable Revision Control Server (using Subversion)
I agree with not getting into a debate on SCM systems. I would throw in another recommendation for Git, I use it on a daily basis and it is actually very intuitive. If you want a good primer on Git the book Pro Git is free at http://progit.org/book/.
|
Re: Portable Revision Control Server (using Subversion)
Switch to Git. Your dreams will come true, and nightmares of merging will disappear.
|
Re: Portable Revision Control Server (using Subversion)
Git seems appropriate for an FRC type of revision system at competition. My personal preference would be to still have a central server back at the school (or wherever) and use a tethered smart phone to access it. In a couple of years, I suspect a cheap 3G wireless plan for the laptop/netbook will be available too.
Quote:
|
| All times are GMT -5. The time now is 03:30. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi