Game Development Community

Cheap and Easy Version Control Solutions? (Don't say CVS)

by Davis Ray Sickmon, Jr · in General Discussion · 11/06/2002 (1:00 pm) · 40 replies

Hi all -
I've got two projects going, one with 9 team members, and the second one is just started with three. One of the major headaches is the lack of a version control system.

And, yep, I know CVS exists. I've never been a fan of it, but, an extra problem shows up with it too - I've got no where to run it at the moment. Both my home and office dev machines are behind a firewall, running Windows, so I'd rather not put holes in it for CVS. My server is in a hosted situation, so, loading CVS on there isn't much of an option.

Anyone got any ideas for a easy to use, cheap Version Control System for Windows? I've been playing with FTPVCS... it's easy to setup to talk to (it just uses FTP to talk to the server, and uses tagging to keep track of everything), but, it falls down pretty easily and in general seems to be a P.O.S. Any ideas would be appreciated 8-)
Page «Previous 1 2
#1
11/06/2002 (2:03 pm)
I use a program called rsync to keep an up to date version on a server that all my team can access.

The problem is, rsync is not a versioning system mso it is only best to have one person submitting to the server.

On the upside it is easy to configure, very stable and free. (It comes with most linux's)
There is a win32 version available as well.

For more information on it, check out the rsync resource on this site
#2
11/06/2002 (2:07 pm)
I was thinking of developing a distributed solution to this problem.

A peer to peer setup could be a lot more economical than the client/server based stuff.

Kind of like a legit KaZaA for developers. :)

There are some obvious downsides, however.
#3
11/06/2002 (2:26 pm)
You'd rather not put holes in your firewall for CVS? So your big problem with CVS is the ports? Just forward the ports and use CVS.
#4
11/06/2002 (2:34 pm)
Naw, just ONE of my problems with CVS - it also doesn't fit the other criteria: Easy.

I've used CVS on Linux and used WinCVS for the windows side before - nothing new there. But ya know what? To most non-programmers, CVS is a mystery ;-) I'd prefer something that requires as little technical explenation as possible.
#5
11/06/2002 (2:43 pm)
You can get a free Perforce server and client with a maximum of two user accounts. I find it a bit easier to use than CVS - and it has a W2K server so you don't need to set up a Linux box.
#6
11/06/2002 (2:53 pm)
I've also been curious about this. I've seen a few out there: Anthill, PCVS Version Manager, Perforce, Visual Source Safe, etc. But nothing REALLY simple. Maybe this could become a pet-project for a talented individual. K.I.S.S. app with a simple GUI.
#7
11/06/2002 (2:55 pm)
Anyone have any thoughts on a peer 2 peer setup?
#8
11/06/2002 (2:59 pm)
Groove might be worth a shot.

http://www.groove.net/

A bit of cash (though there might be a free variant around), but a neat thing.
#9
11/06/2002 (3:01 pm)
I think for a small setup (4-5 people) that might be a good option. If you have a large crew, it would make more sense to use some form of a CVS server.
#10
11/06/2002 (3:03 pm)
Anthony: Well... not sure you'll like my comments on it, but, here goes...

1) Connectivity. For a Version Control server to be useful, you'd have to have at least one client online at all times. In a P2P networked situation, you really don't have that much control over it.

2) Teams usually aren't huge - so, if you only have 3 or 4 members working on a project, the connectivity issue above gets worse. If you have 30 or 40 team memebers, connectivity is less of an issue, but, the issue below gets interesting...

3) Sync - how do you garantee that all of the 'servers' have the most current version of the software? With a VCS, everyone would HAVE to be up to speed all the time - otherewise, if "Bob" had the proper version, but is offline, and "Joe" has an older version, and "Tim" has an even older version, when he makes a request, then he's not going to get the most current version, instead he's going to get "Joe"'s version. This gets even worse when "Tim" checks in a file to "Joe", "Joe" goes offline, then "Bob" is now out of sync, even though all but 1 file is newer than "Tim"'s version.

While it's not completely impossible, I suppose, it would be REALLY painful to work out the logisitics of it all. With CVS and similar systems, there's still the risk of someone checking in bad stuff - but, with CVS, there's only one place the error can come from. With a P2P system, well, the complexity of screwups becomes incredible ;-)

And keep in mind - that's just the problems I could think of off the top of my head ;-)
#11
11/06/2002 (3:36 pm)
Everything you mentioned is constructive :)

I've thought of these same issues with the idea, but I think they could be attainable.

I was thinking the system could have a hierarchy, and the top of the hierarchy would make the offical commits.

So if you are on the bottom and submit a patch, it then distributes to everyone currently on the network. But it's flagged as an unofficial patch.

If someone higher up axes the change, the system would distribute a message thru the network telling the clients to remove (or archive) the change.

This way, once you log on to the network, you would automatically be able to recieve the update from anyone that already has it.

Kind of a trickle down type system.

Althought I haven't prototyped anything, so I don't know if it's entirely practical.
#12
11/06/2002 (3:38 pm)
Also, the system would keep track the version (in a distributed manner) so you wouldn't be downloading from someone who has an older version unless you specifically ask too.

There wouldn't be blind updates. :)
#13
11/06/2002 (3:40 pm)
One more thing.

If you were downloading an update from someone and they disconnected, the system would just find someone else with a version match for that file and start a transfer there.

This also would mean that many people on the network would have the official versions... so if the main person crashed and no backup was made, it would be easy to recover.

With CVS, if the server isn't backed up, you'd have to find someone with the latest update and relaunch the server.

With the distributed system, you'd just have to reconnect and it would find somebody and update you.

Just some ideas. :)
#14
11/06/2002 (3:53 pm)
CVS for windows might be your best bet. Punching holes in firewalls won;t kill you if it solves the problem. You already have a hole for FTP, and that's more dangerous ;)

What I don;t know is if CVS supports SSH on Windows server side. That would mitigate (but not solve) additional security issues.

Is this for a TGE game? Or just some other proprietary dev effort?
#15
11/06/2002 (4:40 pm)
Torque could use a good auto-update, too. What about a system that works as either?

Unreal Tournament does it, to a point... and granted, that sucks, but CVS is by no means fast either so for development it might be in line.

The tough(?) part would be in the versioning, I think. Any not very difficult way to implement date checking?

Also, I think Davis is talking about a hosted server, rather than his own rig as the server.

Eric
#16
11/06/2002 (5:30 pm)
I know you said not to mention CVS, but...

I haven't seen it mentioned yet, but there is actually an easy interface to CVS for windows. It's called TortoiseCVS (http://www.tortoisecvs.org). It integrates with explorer, and is an excellent alternative for technical and non-technical people alike. I actually use it as my primary CVS client; for more complex operations I open up WinCVS.

As for the question of hosting... I'm a business partner in a small web hosting company, and we're seriously considering expanding to offer CVS hosting for developers. I've talked with a number of interested people, but I haven't any cost estimates just yet.
#17
11/06/2002 (6:36 pm)
Here are two version control systems:

Subversion

Bitkeeper

I think bitkeeper is technically superior but its free license might be hard to deal with for indie gamers. You have to publish all over your changelogs and run the latest official version of the software at all times.

There is another version control system called "arch" by Tom Lord, which I think is supposed to be the best of the cvs/bitkeeper worlds, but the web site is down at the moment.
#18
11/06/2002 (8:32 pm)
What about that NxN alienbrain thing, I suppose that's more for artists.

A few friends of mine and I are thinking of making a competitor to NxN alienbrain, but we'll start it after exams (in a few weeks). Does anybody actually have any demands for such a product?
#19
11/06/2002 (8:42 pm)
Tunnel CVS over SSH.
#20
11/06/2002 (8:51 pm)
RE: AlienBrain
I'm sure I and any other dev team that has to deal with lots of art resources would kill to have an AlienBrain VCS system with the level of detail and integration that it offers. Especially if it could be had at a reasonable price, say a couple hudred dollars a seat (or hopefully less). I and other game developers I know drool for their stuff, but at approximately $2000 a seat, it's just too rich for most teams' (and even professional companies') budgets.

But, unless the new 6.0 has made major changes to its source control for code, then it's not a very good fit for programmers. Compared to VSS, or CVS paried with a good diff/merge tool, I've heard that AB is lacking in the code control department.
Page «Previous 1 2