Free Source Code Control for Single Developer



  • I'm looking for a source code control system which is free for a single user, SourceGear Vault appears to fit the bill but I'm having trouble even starting the installation program. Also, it must integrate with Visual Studio .NET 2005. Any suggestions?



  • Subversion. http://subversion.tigris.org

    Then a plugin from http://subversion.tigris.org/links.html, probably AnkhSVN or TortoiseSVN

    There is no choice.




  • @Ixpah said:

    I'm looking for a source code control system which is free for a single user, SourceGear Vault appears to fit the bill but I'm having trouble even starting the installation program. Also, it must integrate with Visual Studio .NET 2005. Any suggestions?

    Subversion is free for everyone, works well, scales really well when the number of devs gets up, Ankh provides VS.Net integration (not sure about 2005) even though it's not really complete, you may drop the VS integration and use something like Tortoise instead.

    And if you're on windows, the 1 click installer makes installing a subversion repository trivial.



  • A little less than a year ago, I sprung for Subversion on a smaller project (8 Devs) and found that it's VS2003 integration support (via Ankh) was a bit buggy. I went back to my colleague (a SVN expert I guess) who had originally suggested it. He explained that the SVN paradigm is different than the Source Safe paradigm, and that SVN paradigm doesn't really fit well with integrated development. I switched the team to Source Vault ($200/seat I think) and had much better luck.

    Note that with SourceVault you need to install the Client and the Server. Surprising to here you're having difficulty, it installed without any problem for me.

    Oh, another note too - the one thing I really liked about SoureVault vs SVN was that Vault uses a database as the storage engine. It was a breeze to tap into that for creating CM and build management tools. It woulda been a huge PITA having to rely on the command-line interface.

    I may try SVN again, I do like the idea of triggers and what not. But it's been my experience that .NET developers prefer integration, and that's who I usually work with.



  • Could you expand a bit on what you mean by "[the] SVN paradigm doesn't really fit well with integrated development"?  I'm not clear on how checkout-edit-merge can "not fit" with something, unless another developer completely replaces a file out from under you, so I'd be interested to hear the problems you had with it.

    As for gluing things onto svn, subversion itself was written as a set of libraries first and a command-line tool second, so in theory you shouldn't have to call out to svn.exe, just make a function call to the library.  Having never written any code that talks to subversion, I can't speak for how easy or hard it is to write for.  And it does drag in APR, which can be largish.



  • @Alex Papadimoulis said:

    A little less than a year ago, I sprung for Subversion on a smaller project (8 Devs) and found that it's VS2003 integration support (via Ankh) was a bit buggy. I went back to my colleague (a SVN expert I guess) who had originally suggested it. He explained that the SVN paradigm is different than the Source Safe paradigm, and that SVN paradigm doesn't really fit well with integrated development.

    Holly hell, what the flying hell what that guy smoking? AnkhSVN is still in development and seems somewhat unstable indeed (disclaimer: I'm don't use it), but nothing stops you from using another client if you don't miss the integration itself (TortoiseSVN is quite cool for example and integrates to the Windows Explorer instead of VS), but saying that the edit-merge model "doesn't fit well with integrated development" is plain stupid.

    @Alex Papadimoulis said:

    Note that with SourceVault you need to install the Client and the Server. Surprising to here you're having difficulty, it installed without any problem for me.

    Same with subversion, it's a centralized RCS (*) (by opposition to stuff like Darcs, Monotone, Mercurial, Git, GNU Arch, Bazaar-NG or the well-known Bitkeeper which are distributed RCS), you install a server (well a repository in SVN-speak, or several) and a client on every dev machine, and there you go.

    @Alex Papadimoulis said:

    Oh, another note too - the one thing I really liked about SoureVault vs SVN was that Vault uses a database as the storage engine. It was a breeze to tap into that for creating CM and build management tools.

    Uh? SVN does use a DB as it's backend, it defaults to a BerkeleyDB storage engine (you can also use FSFS built on top of the filesystem, both have advantages and inconvenients).

    @Alex Papadimoulis said:
    It woulda been a huge PITA having to rely on the command-line interface.

    I must say that I don't quite follow you here, are you saying that the administration of the repositories would be a PITA through CLI? SVN repositories require very few maintenance. If you're talking about clients, then Ankh may not be there yet but there are literraly dozens of SVN clients. Plus integrated stuff like Trac (that uses SVN) is priceless.

    @Alex Papadimoulis said:

    I may try SVN again, I do like the idea of triggers and what not. But it's been my experience that .NET developers prefer integration, and that's who I usually work with.

    There again, the integration issue to Visual Studio is an issue with AnkhSVN, definitely not with SVN itself.

    (*): SVN itself is centralized, but it should be noted that people have built SVK which is a distributed RCS built on top of SVN



  • Edit timer expired (can't you just remove it alex?) so now post for completion:

    Another RCS I haven't talked about in this post (i'm mostly talking about free RCS) is Perforce, I haven't used it myself but I've read a lot of good things about it and it has plugins for integration in pretty much everything included but not limited to Maya, Photoshop, Office, Explorer and Visual Studio



  • @masklinn said:

    saying that the edit-merge model "doesn't fit well with integrated development" is plain stupid

    Indeed. I think that I meant that it doesn't fit in with the integrated develoment model that most Visual Studio developers are used to (exclusive checkout).

    @masklinn said:

    SVN does use a DB as it's backend

    Maybe I'm thinking CVS? I know that Source Safe uses a disk method.

    @masklinn said:

    are you saying that the administration of the repositories would be a PITA through CLI

    No -- in the context of build mangement tools. It's often times it's cheaper to build one from scratch than to use things like Rational or Harvest (though maybe this will change with Team Server), so it's important to tap into the repositories to get labels, branches, etc, and so on.

    Are there other SVN clients for Visual Studio?



  • @Alex Papadimoulis said:

    @masklinn said:

    saying that the edit-merge model "doesn't fit well with integrated development" is plain stupid

    Indeed. I think that I meant that it doesn't fit in with the integrated develoment model that most Visual Studio developers are used to (exclusive checkout).

    Ahh ok. Well you can do exclusive checkout in SVN too, but you kinda loose the advantages of using SVN (or an RCS using the edit/merge model anyway).

    @Alex Papadimoulis said:

    @masklinn said:

    SVN does use a DB as it's backend

    Maybe I'm thinking CVS? I know that Source Safe uses a disk method.

    Yeah SourceSafe uses the filesystem (and on publicly accessible fileshares), but I have no idea what CVS uses.

    @Alex Papadimoulis said:

    @masklinn said:

    are you saying that the administration of the repositories would be a PITA through CLI

    No -- in the context of build mangement tools. It's often times it's cheaper to build one from scratch than to use things like Rational or Harvest (though maybe this will change with Team Server), so it's important to tap into the repositories to get labels, branches, etc, and so on.

    I still don't see what you meant, especially since there is a well documented api to SVNLib (and SVN's CLI tools are built on top of svnlib in the first place) as well as bindings for quite a lot of languages, there is no problem in tapping directly in the repository from tools you build from scratch



  • I can only say good things about Subversion. Works flawlessly on the server, and the TortoiseSVN (for the windows explorer shell) and SubClipse (for integration w/ Eclipse) are a joy to use. Quite unlike other RCS that I've been forced to used :)




  • For my personal projects which are mostly C#, and so are mostly done in VS 2003 (getting ready to convert to VS 2005).  I use SourceGear's Vault.  I also use it for work, and they make it convenient to be able to log into to different repositories (I expect Subversion is easy to do that with also).  Personally, I really like Vault.  It was free for me.  At work, we have more than 1 developer, so we had to get some licenses, but they were relatively inexpensive.  I have never needed the support, but I am a reader of the owner's blog and he seems pretty good at responding to those inquiries, so I can only guess the support is pretty good too. 



  • @n89j said:

    Ha! Where I work, I'm the only developer that works on a project large enough to benefit from source control and the only one that cares enough to think about using it... so I use Vault. but I'm too swamped and unmotivated to use it effectively.

    From my experience, "large enough to benefit from SCM" starts at the first character of the first line of the first file you write.

    The only thing that you can afford not to put in SCM is a one-shot script created in half an hour.



  • @Alex Papadimoulis said:

    @masklinn said:

    saying that the edit-merge model "doesn't fit well with integrated development" is plain stupid

    Indeed. I think that I meant that it doesn't fit in with the integrated develoment model that most Visual Studio developers are used to (exclusive checkout).

    I don't think it's so much that SVN doesn't fit an integrated development model, but rather that VSS doesn't fit any sensible version control model.

    I've used perforce with a few IDEs, but in terms of integration, the worst by far was Visual Studio, especially when it came to web projects. It's a shame, really, because otherwise Visual Studio is a fine IDE. I haven't used SVN with VS, but I've heard enough to not really want to.

    My advice to the OP is "use SVN, but don't bother with plugins for Visual Studio."

    (assuming you mean free as in beer as well as freedom)



  • @masklinn said:

    From my experience, "large enough to benefit from SCM" starts at the first character of the first line of the first file you write.

    The only thing that you can afford not to put in SCM is a one-shot script created in half an hour.


    SCM is completely unnecessary and a waste of time and resources. At least until the day you really really need it. ;-)



  • @ammoQ said:

    @masklinn said:
    From my experience, "large enough to benefit from SCM" starts at the first character of the first line of the first file you write.

    The only thing that you can afford not to put in SCM is a one-shot script created in half an hour.


    SCM is completely unnecessary and a waste of time and resources. At least until the day you really really need it. ;-)

    That's pretty much it, and by then it's far too late and you're usually fucked to the core, and you can either start crying or try to put the blame on someone else.



  • @masklinn said:

    @ammoQ said:
    @masklinn said:
    From my experience, "large enough to benefit from SCM" starts at the first character of the first line of the first file you write.

    The only thing that you can afford not to put in SCM is a one-shot script created in half an hour.


    SCM is completely unnecessary and a waste of time and resources. At least until the day you really really need it. ;-)

    That's pretty much it, and by then it's far too late and you're usually fucked to the core, and you can either start crying or try to put the blame on someone else.



    Oh, I think you are thinking about backups. No backup = big bang.
    The problems for people who do not use SCM are often more subtile. For example: The new version occasionally crashes, but no-one can say for sure what has been changed. Users switch back to the old executable, bug vanishes. So it must be in the new version, doesn't it? Without SCM, searching the bug (if it cannot be found in the debugger for some reason) it's a trial-and-error game. After several experimental changes, the bug vanishes, but something else fails. So one of the experimental changes was probably good and another one bad, but without SCM, it's not clear what those experimental changes were. Days after days are spent in this bug-hunt, until eventually it works, or maybe it only kind-of works. Users refuse to use the new version, emergency management meetings are scheduled etc.
    In the end, the amount of wasted time can exceed that of a crash without regular backups, but it's not that clear in the beginning. It's more creepy.


  • @ammoQ said:

    @masklinn said:
    @ammoQ said:
    @masklinn said:
    From my experience, "large enough to benefit from SCM" starts at the first character of the first line of the first file you write.

    The only thing that you can afford not to put in SCM is a one-shot script created in half an hour.


    SCM is completely unnecessary and a waste of time and resources. At least until the day you really really need it. ;-)

    That's pretty much it, and by then it's far too late and you're usually fucked to the core, and you can either start crying or try to put the blame on someone else.



    Oh, I think you are thinking about backups. No backup = big bang.

    Nope, backups are cool but hardly enough when you've got people overwriting or deleting "random" files on a daily basis (to clean up), or people "concurrently editing" (as in editing the same file in the same place at the same time)

    The world is not suddenly destroyed, but you often can't afford the time it takes to ask IT for the tapes, roll the tapes, restore your files, and do it again the next day.

    So you can have time wasters beyond subtle bugs such as your examples'


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.