Source code control (RCS, VSS, etc.)

So as part of professional development, I assume everybody uses some form of source code control and revision tracking.  This allows multiple developers to work together, and also a way of tracking changes.  Sometimes they're also used as a way of 'branching' off new features and then integrating them back in once the feature is stable enough.

My question is more for the hobbyist who works alone.  Generally there's no need for many of these features.  So do most hobbyists use some sort of source code system for their own projects?  If yes, why?

For myself I do it just as a way to track changes.  I never need to branch anything.  There's nobody else that I share stuff with.  I suppose I also use it in a limited way to track bugs.

So, do you use a source code control system?  Which one? Why?

Thanks for taking the time to answer.
--Grant

Comments

  • Anonymous
    October 06, 2004
    I just use source control when I feel a project will need an extra backup and a way of tracking changes, as you say.

    Mostly it's just checkin-checkout when I feel like it. Sometimes I label for versioning's sake. I only pin files rarely, in an attempt to keep me from destroying my own work unknowingly. :)

    I don't see branching as part of my work process, as I don't work alone on projects large enough for that.
  • Anonymous
    October 06, 2004
    Absolutely I do. If for no other reason then because I always have a fallback version that I know works if I go too far making changes.
  • Anonymous
    October 06, 2004
    I definitely use source control at home. Primarily because of the change tracking. I think that's very key. Also to keep in the habit.

    I use SourceGear Vault because it's free for a single user license.

    I use GotDotNet workspaces for my personal code library since I want to use it at work and at home. But I want to change that since Workspaces is not robust at all.
  • Anonymous
    October 06, 2004
    The comment has been removed
  • Anonymous
    October 06, 2004
    The comment has been removed
  • Anonymous
    October 06, 2004
    Close enough to be worth the read. I am still curious about which source code control system you use.
  • Anonymous
    October 06, 2004
    I do not use a source control system at home. I would love to use one - unfortinately, there is nothing suitable for hobbyists.

    SourceSafe is notable because it ships with Visual Studio. However, the fact that you need access to a Windows Domain and integrated windows authentication makes it next to useless, even in small/mid-business companies.

    I realize that it helps Microsoft sell more servers, but it makes roaming next to impossible. I can't work from home without a VPN - going through the VPN is alot slower than an IP connection.

    I would love to see a CVS source control plugin for Visual Studio. There arent any (good ones) available because Microsoft has strange licensing requirements for the SCC api (why?).

    As a hobbyist developer, sometimes I'd like to work with one or two other developers in remote parts of the world on a project. As Visual Studio ships right now - I can't do that. Thats why CVS is nice - I could use the various community sites to work on the code together.
  • Anonymous
    October 06, 2004
    The comment has been removed
  • Anonymous
    October 06, 2004
    I just started using SubVersion. Its actually working out great because it lets me not only use it for source code, I sync files I like to carry on my laptop and on my desktop. The Tortoise SVN ui is okay (a little slow).

    Also, ShadowChaser, I tried using a tool to integrate source control into VS, but they work on completely different paradyms. CVS is opportunitist, while VS expects a pesimistic locking scheme. I just gave up on integrating the two. Its not the integration that is a problem it is how VS expects the two to interact.
  • Anonymous
    October 06, 2004
    I've tried many source control systems at home, including VSS, Perforce, and most recently Subversion. I never was able to get Perforce to work and have tried on many occassions. I have since adopted Subversion at home because I like the Explorer based approach (using TortoiseSVN) plus it's free and at this time fairly well supported by the community. As for bug tracking I don't bother at home but at work we've tried Bugzilla and Trac. We recently setup a Trac instance that is being rolled out company wide to handle all of our bug and feature tracking. Trac integrates nicely with Subversion and is free as well.

    For source control at work we use StarTeam, purchased back when it was owned by StarBase (now owned by Borland). It's pricey but has lots of tools, many of which we don't even use. Personally I'd like to switch to Subversion at work so that everything can be source controlled, sales sheets, proposals, etc as right now only developers have access to StarTeam ($500 or so per seat).
  • Anonymous
    October 06, 2004
    I use subversion with the subversion binaries and the repository on a 512M SD card.
  • Anonymous
    October 06, 2004
    I use CVS through WinCVS for my hobby projects and for those projects at the office where I am the only developer.

    The reason for my using a version control system for these projects is, that I want to be able to undo things if things go bad (which actually never really happened), and it kind of nudges me to document what I am doing while checking in. Those logs are a great tool when you look at your code three months later...

    Another reason is that it provides an easy way to use the same source code at the office and at home. I simply synchronize my CVS repository (which resides on a local disk at both locations) with a copy of it on a USB memory stick.

    I tried using Subversion a bit (through TortoiseSVN), but I realize that, more than anything else, I want a user interface that can flatten the directory structure. WinCVS provides that, but I haven't stumbled across any SVN client that allows me to do that. And I don't want to use any UI that integrates with Visual Studio (e.g. Ankh, which provides SVN support in VS2003), because I often want to use it with other data than VS projects.

  • Anonymous
    October 06, 2004
    When working on my own projects I use WinCVS. I find it to be very lightwreight and easy to use. Although I do not share my write access with anyone, it is nice to being able to revert back or get the earlier version that is suitable for production ( as opposed to the later version with more features but not tested enough or with obvious bugs).
  • Anonymous
    October 06, 2004
    CVS.
    It's stable - highly stable, scalable (it's client-server), works very fast even over a ADSL VPN, stores everything as text files (source code recovery is more probable in case of a repository corruption, which, in 4 years with a repository of ~500MB, never happened).
    It's free (as in free beer).
    There are a lot of 3rd party tools that work with CVS, e.g., changelog generators, repository browsers, statistics, etc. It integrates nicely with bugzilla, which we use for bug tracking.
    I love having not a single file read-only just because it's under source control (as opposed to VSS).
    I love being able to ci/co a file without needing to ask someone for "hey, please, release this file for me". On a large staff, this is great.
    I have a few horror stories about VSS. I lost sources from a lot of projects due to VSS repository corruption. I won't come back to it again in 100 years.
    The only scenario I've seen VSS working nicely is a single developer, on a single machine.
    We're considering upgrading from CVS to Subversion in the near future.
  • Anonymous
    October 06, 2004
    WinCVS
  • Anonymous
    October 06, 2004
    The comment has been removed
  • Anonymous
    October 06, 2004
    I use Subversion for my home hobby projects. I prefer to use version control to track changes also.

    I do a lot of branching under Subversion. Over time, I've built frameworks that may be shared by two or more of my projects, so I find myself doing a lot of branching and merging of my frameworks between different projects.

    I also like AnkhSVN for VS.NET integration and TortoiseSVN for Explorer integration. Both work well for me. They're not as speedy, but both work really well and are very well integrated into their respective environments.
  • Anonymous
    October 06, 2004
    The comment has been removed
  • Anonymous
    October 06, 2004

    Most of my clients use VSS and even for my own projects I would use VSS. Just like others, I used it for even small projects because I wanted the safety net for when I accidentally delete huge chunks of important code because I had a moment of utter stupidity.

    I'm a recent convert to Vault and I've gotten some of my clients to move over. I've grown weary of having to fix VSS over and over again. Vault is faster and I haven't had an ounce of trouble with it. Furthermore, for some projects we require remote access to the code repositories and that's something we can't use VSS for. (And we're not inclinded to use CVS or others like it.)

    I still consider myself a newbie when it comes to fully taking advantage of source control. I still fumble with the concepts of branching and merging, but I'm going to have to learn soon. Projects are getting bigger and bigger....
  • Anonymous
    October 06, 2004
    Subversion since it is free and there are various tools available (TortoiseSVN). I've tried SourceGear, but liked Subversion better (less problems).
  • Anonymous
    October 06, 2004
    ShadowChaser:

    Actually, VSS does not require Windows Authentication integration. It offers this feature, but does not require it.

    It does require that the database is on a file share that is accessable by all users. However, file shares of this type have been around since before Windows 95, so that shouldn't be a problem.
  • Anonymous
    October 06, 2004
    I'm using VSS to keep track of changes currently but started to look for another solution so I can integrate some kind of bug tracking - which will be next on the test agenda :). So far, Subversion and Perforce are candidates because they are free for the intended scenario, provide the neccesary hooks for a bugtracker, separate between client and server and handle submits/check-ins/whatever you call it atomic. Thanks to the comments here I have to look into SourceGear Vault soon :)

    OT: As a suggested read for the newbies to Source Control: http://software.ericsink.com/scm/source_control.html
  • Anonymous
    October 06, 2004
    I use CVS off a Linux server. My front-end is a great little open-source tool for windows called Tortoise-CVS. Really worth looking into. It hooks into explorer context menus.
  • Anonymous
    October 06, 2004

    SC for me is a huge net that I can fall back on.. aside from the usual daily check ins/outs if a branch of development on some new idea or some new way of doing things (refactoring) doesn't pan out, I can quickly and easily revert back to the safe, working version

    Using Sourceforge Vault. Free single user license, Visual Studio integration, communication via Web Services which let me travel and still be able to work on projects (securely since Vault is using VSE to encrypt data and using SSL as an added layer of protection, mostly because it's easy to enable in IIS) is totally awesome and most of the reason why I moved to vault from VSS.
  • Anonymous
    October 06, 2004
    Another use not mentionned here:

    I use CVS on Unix to track changes in the machine configuration.

    It wouldn't be so clean with Windows and the registry stuff, on Unix all configuration is on text files, essentially in /etc

    I have a script which runs cvs with a comment, add new files and remove files which have disappeared.

    For example: configcommit "New antispam filter" or configcommit "upgrading packages"

    Very useful when I have a problem and need to check what happened recently
  • Anonymous
    October 07, 2004
    As the developer of AnkhSVN, I wouldn't trust anything besides Visual Sourcesafe with the Ankh source...

  • Anonymous
    October 07, 2004
    I use Perforce at home, myself; partly to have a repository of all my projects in one place, rather than having my working projects directory crowded with a lot of old projects.

    Also, I like the facility to be able to roll back to older versions, should I go down the wrong route somewhere in the design of later versions, but also because I may still need to support an older version while working on the newer one.
  • Anonymous
    October 09, 2004
    After trying and failing several SCC systems, I finally got hooked on subversion. I like it for several reasons.

    1) I found an outside service to host it, which gives me a backup.

    2) I find I am braver with refactoring when I know I can go back. (I have only actually reverted once, but I'm braver)

    3) The dicipline of writing checkin comments as I go keeps me on a single task.

    My choice of subversion was simple -- It was the only one I could make work in less than three hours. I really like the tortiseSVN shell as well.
  • Anonymous
    October 21, 2004
    Definitely use VSS for projects mainly because I get so caught up on making changes that I end up with some things working better while other are worse. Then I can compare a new version with an old one and merge them in a way to include only the best part.
  • Anonymous
    April 12, 2005
    Anyone looking for a new scm/version tracking tool should checkout Evolution. ionForge has it on their website to download for free. It's easy to get it up and running and if you want to pay them for the multi-user version then you can collaborate via TCP/IP. www.ionforge.com/?code=254883