Versioning systems

I’m just curious about how many people are using versioning systems (cvs, etc) with their code. I know my life has been made a lot easer this year because of it.

How so?

There were a few times when I tried to add something, and it turned out to totally break everything, makes things easy to back up and access from anywhere (if you store it on a remote server), makes things easer when you have more than one person working on the code, and mostly it makes you feel really pro :wink:

One of our new programmers, who is very knowledgable when it comes to computers, recently installed CVS on his Linux FC server at home, I think he was using SandWebCGI; anyways, no one’s really gotten around using it yet, so we can’t see any improvements over previous years w/out CVS. Also, his dynamic IP (SBC likes to flush their DHCP server weekly, for some reason) makes it hard to access the server.

WildStang has been using CVS for a few years now as our version control system.

Version control is a must in real world software development. There have been numerous times when we’ve had to take entire features (hundreds of files) out of a deliverable. Without version control, there is literally no way to perform such a task. With version control its as simple as grabbing a labelled set of files.

In situations where there is more than one person working on code there will inevitably be a situation where someone’s changes will conflict with someone else’s. Without version control, that person could copy over the other’s without even thinking twice. Version control protects against this situation.

Bottom line is this: version control is a good thing. For those of you that are going into software development for a career, you will no doubtedly see this in the future. If you learn these concepts now, you’ll be much better off when you get into a real world situation.

If your having dynamic IP woes, try no-ip. I’ve been using it for a little more than a year with no problems.
The biggest problem I’m having is getting around my schools stupid firewall (actually, its the board that puts it in, so there is nothing I can do about it) which blocks all ports but HTTP. I just had SSH listen on port 443 (HTTPS) as well to solve that thou.

Our programming mentor’s husband works for Microsoft, so we got Visual SourceSafe. Beautiful peace of software (well, decent. Just sucking up becuase he told me he could get me a beta version of Visual Studio 2005. :D).

We had two programmers working, so it was very helpful in cooridating work, especially on the utility functions which we were codependent on. (I wrote autonomous and some utility stuff for motors and he wrote the driver control and encoders.)

Dave made some great points. No need to reiterate.

We use CVS at work, but there have been talks of moving to Subversion.

I can’t imagine that you are talking about code for the Robot Controller. I thought this thread was about using versioning systems for that.

I don’t think you read all of Dave’s response, then. He was telling us how he uses CVS in a real world application, in addition to how WildStang uses it.

That’s what I suspected, it wasn’t clear form his post. Anyway, I’m still interested if any teams actually use it. I thought it might have been a good idea, but with less than 20 or so files, it seems like more of a hassle than its worth.

Really? I haven’t found it to be any hassle. As far as I can tell, there are no real disadvantages to using it (as long as you don’t have a problem with typing “cvs commit” then a few words about what you did).

That’s what I suspected, it wasn’t clear form his post.
Sorry about that. Yes, my example referred to a real world situation. In particular it was for a software patch for Nextel.

In terms of robot controller software, we ususally get everything checked in (commit) and labeled when we have a milestone, or at key times such as we ships with the robot, and before/after each competition. This allows us to always have something to fall back on in case something really goes wrong.

I’ve been using Subversion for some of my own stuff and it’s a big improvement over CVS. If anyone is looking to get started with version control I definitely recommend just starting with Subversion instead. I’m still working on convincing the rest of my team that we should use it for Wildstang… there’s one last holdout who insists he can’t live without CvsGui.

BTW, Dave Scheck and the rest of us at Motorola don’t use CVS for work. We all use another version control system called Clearcase from IBM. It’s much nicer than any of the open-source version control systems, but unfortunately it’s big $$$.

One last thing: to the person who said it’s not worth it for 20 files, trust me, it really is. It’s worth it even if you only have 1 file to worry about. Anyone who’s spent any time writing software has certainly made a bunch of changes only to find out they’ve completely dorked up the program, and then find out they can’t get it back to the way it was before when it worked. If you have version control it’s trivial to retrieve the version that worked. But I guess it’s pretty hard to convince someone of it’s virtues until they’ve used it and seen the light… but if you’re willing to trust some of us here, try it out and sooner or later you’ll see what we mean! :wink:

Yeah, well I keep telling my friend to get a free DNS service, but he still hasn’t. My cable connection hasn’t changed the IP for over a year now.

Our school is theoretically behind a firewall, but I don’t really see it. All they did was block all outgoing ports, and they also, for each computer, blocked all outgoing ports, except for a select few, which is kind of wierd. Since it’s on a per computer basis, some computers have access to all ports, some don’t. The computers at our school are wierd.

The newer versions of MPLAB allow you to integrate a version control package with the IDE. The last time I looked at it was in the Spring and it only supported VSS, but its possible they’ve added others. Once you connect to the VSS archive you can check source files in and out through the project browser in MPLAB.

version control is a great :smiley: thing. It means when you add something that screws up the whole thing, its easy to get back what you had b4.

Standard practice for the TechnoKats has been to make daily archives of the entire code base. I extended that to include multiple archives on unusually busy programming days. As a professional programmer, I know well the value of being able to revert to a previous (and supposedly working) state of the software.

We don’t use anything more formal than a simple right-click-and-drag copy of the daily folder, followed by renaming the copy to indicate the date (and optional time). It’s wasteful of disk space, but we’re not talking about a multimegabyte file set here, and if it becomes an issue we can always use something like WinZip to compress the daily archives.

Depending on the team and their capabilities and talents, I’ve either done that or used CVS.

The main thing I’ve realized over the years is that some sort of version control is important, and equally important is that those versions need to be availible at the competition, without internet access. I’ve had to go back to the hotel in the middle of competition so I could get access to earlier versions, and it’s not fun.

I’m working on getting an online CVS for my team (thanks again, Venkatesh!). Last year we didn’t have any, and my mentors were a little peeved about it.

I’ve used CVS for someother things, too. (My personal favorite client is TortoiseCVS.) I like it. I also use Visual SourceSafe for some of my VB/VC++ projects, but odds are no one else has access (or a desire) to use that.