When you find yourself writing a script to test if your source control system has broken your code again – well, that’s not fair, I’ve already known for years that we have to stop using SourceSafe/Source-Off-Site.
I was wading thru a list of supply-related bugs today and I finally realized that they were all linked to the absence of factory linkage. A quick check of the test server’s log files revealed it had only once verified supply linkage. Argh.
It all boils down to “are we there yet” (the housekeeping function checking to see if the seconds since epoch were greater than the number of miliseconds since epoch + 5). Every now and again something I’m doing with SOS overwrites that file with an older version. Gah.
The real reason we haven’t switched source control is our requirements.
1- Has to support file links (sourcesafe calls em “shares”): I have to be able to share the file “pn/host/chat/chatServerTrackedObjects.cpp” with “pn/ww2/ww2ol/src/chat/” such that I can check it out and edit it in either location.
2- Has to be cross-platform: Windows, Mac, Linux
3- Has to have a front end that is friendly to non-coders (e.g. Eclipse’s Team Sharing for CVS/SVN)
4- Has to be integratable into Visual Studio and/or Multigen/3D Studio/etc
I took a brief look at Perforce; SVN may be an option but seems to need a lot of hand-holding and babysitting. Frankly, the number of pages you get when googling “subversion database corrupt*” is a huge turn-off.
There seem to be a bazillion other Source Control options floating around today, and frankly aside from CVS, SVN and Perforce I don’t even really know what else is an option (Vault isn’t because SourceGear, the people who brought you Source-off-Site to make accessing SourceSafe possible from Linux, decided not to do a Linux version of their source control solution).