Slashdot Mirror


Windows Source Control for the Lone Developer?

bitFlipper asks: "I'm the sole developer of embedded software for a small company. Currently I'm maintaining about five different product lines, each with about 30K lines of code and 100+ files. At the moment I'm winging it without a version control system (using snapshots to CD-R), but this is an unhealthy state of affairs. The open source/big project model of many developers scattered across the globe doesn't apply here--it's just me. And since I have to provide my own tools, the budget for this is near zero. It also has to run on Win32. Oh, and the code I'm developing is not open source. I've looked at RCS (which is certainly simple, but maybe too simple) and Subversion (which is probably overkill). What can people recommend for a version control system that's free or low cost, Win32 compatible, and simple to set up, use and maintain?"

109 comments

  1. Subversion by lightspawn · · Score: 1, Informative
    1. Re:Subversion by lightspawn · · Score: 5, Interesting

      Sorry, I guess I should have explained. It's easy to set up - pretty straightforward if you only want to use it locally - it's as easy as

      svnadmin create dbname

      A huge plus is it's easy to export/import the database to a single (large) file, so you can actually see it does what it's supposed to.

      It's written by the people who used to maintain CVS before noticing how annoying it was.

      So it's not overkill, and satisfies all of your criteria.

    2. Re:Subversion by drfrog · · Score: 1

      i agree subversion is just cvs with a few nicieties:

      -http transmission of changes, cvs needs its own server subversion works under a regular web server
      -only sends diffs of files not the whole file every time

      commands are relatively similar

      --
      back in the day we didnt have no old school
    3. Re:Subversion by Anonymous Coward · · Score: 0

      Yeah, seriously. I've set it up on Windows and Linux, and both were simple.

  2. CVS by Anonymous Coward · · Score: 0

    CVS

    1. Re:CVS by Arkham · · Score: 4, Informative

      CVS (Concurrent Versioning System) is definitely the way to go.

      Here are some links to get you started:

      CVS On Windows

      WinCVS GUI (very nice, uses Python undeneath)

      Tortoise CVS

      CVS NT Wiki

      Component CVS for Windows

      All of these are CVS for Windows tools. CVS is a great revision control system.

      --
      - Vincit qui patitur.
    2. Re:CVS by smallfries · · Score: 4, Informative

      CVS and subversion are just as complicated as each other. If anything, subversion is easier to use than CVS ever was, and certainly easier to administrate. You can't say that CVS is simpler than subversion as they follow the same model of use, but subversion is somewhat more streamlined and there are less gotcha's to bite you in the ass.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    3. Re:CVS by tachyonflow · · Score: 1
      I agree with the CVS recommendations. I use CVS under Win32 all the time for managing one-person, one-machine development projects.

      You can download CVSNT from this web site.

    4. Re:CVS by Anonymous Coward · · Score: 0

      CVS and subversion are just as complicated as each other.

      Ha ha. Let's take a look at source files:

      -rw-rw-r-- 1 root portage 2248876 Apr 14 21:01 cvs-1.11.15.tar.bz2
      -rw-rw-r-- 1 root portage 6121252 Mar 28 18:06 subversion-1.0.1.tar.bz2

      And that's not even including the dependencies.. subversion, for some reason, needs to pull in Berkeley-freakin DB to do locking and transactions, which is another 3MB archive, and needs the APR runtime library as well.

      Subversion is the very model of overengineering, so if you are choosing between the two, stick with CVS. Especially on a single-user box. I run CVS very nicely on my Zaurus handheld, both client AND server. In fact CVS runs on all my machines, I put many files in it, even non-devel files.

    5. Re:CVS by jgoemat · · Score: 2, Informative
      All of these are CVS for Windows tools. CVS is a great revision control system.
      If you don't have much command line experience they aren't that great. I had trouble getting WinCVS to run and the Tortoise shell integration wasn't great. I had trouble getting it working with my CVS server too, although the command line tools would work after I learned how to use them.

      We use SourceGear vault at work and it works great. It integrates well with Visual Studio and the provided client is easy to use as well. It does cost money, but it was pretty reasonable compared to the alternatives we looked at ($200 per user), including CVS since it took so long to get setup, there would be a learning curve for everyone, and the extra time it takes for everyone to use it would more than offset the cost.

      We tried perforce as well, but it didn't even compare to SourceGear, and we had a lot of problems getting it to work well with Visual Studio .NET, for web-based projects especially.

      The best source control system I ever used was in VisualAge for Java from IBM. I used it on a big Java project at one of my clients. It was integrated with the IDE and tracked changes to individual methods in the classes you were working on. Every time you saved, it would store that version in your local repository. I liked being able to version and name each class, package, and project. You can call them anything you want, but if you put numbers at the end, it will automatically increment them the next time (i.e. naming something "SSTP 1.4.1" will let you automatically version it to be "SSTP 1.4.2" without having to type anything. The local repository was in one big file that held all your changes until you version something to the server. You could even copy that file and take it somewhere else and keep all your changes. I was thinking of writing something similar in C#, anyone else interested?

    6. Re:CVS by Grab · · Score: 1

      I never really got on with WinCVS - I thought as a user interface it left a lot to be desired. TortoiseCVS has some problems, but it's easier to use on a day-to-day basis. In general, Tortoise's integration into Windows Explorer is really neat. I'm planning on trying Subversion at some point, but for the moment I don't see any point in messing with a working system. Maybe if I was starting over then I'd use Subversion - CVS has its, erm, "peculiarities", shall we say, so Subversion is probably a better choice for a new project.

      Incidentally, CVS doesn't need some fancy server in the back-end - TortoiseCVS and WinCVS are quite happy running off an archive based on your local hard drive, or on an archive based on a network drive. It doesn't need some server process running to manage it all.

      Grab.

    7. Re:CVS by smallfries · · Score: 1

      I was referring to complexity of use; how easy it is to get something done in either system. The size of the code base is irrelevent. Berkeley DB is a fairly standard component and is installed in most distributions anyway. Why should they have reinvented the wheel and implemented their own locking transaction system? CVS on the other hand opts for the approach of not handling transactions at all, which is a bitch if you've ever had a commit abort halfway through.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    8. Re:CVS by bendawg · · Score: 1

      You seen to know quite a bit about CVS.
      We are having a problem with CVS at my work. There is a program which we have that is meant for generating HTML called RoboHelp HTML. When we generate our HTML help files, it ends up clearing all of the files (and directories) out of the generated directory and replacing them with "generated files". When it does this, it removes the important "CVS" directory that is in there, and replaces it with a copy of another "CVS" directory. It totally screws up CVS and we never seem to be able to recover it, so we end up having to use a completely different source control system for these files.
      Any ideas how to resolve this?

    9. Re:CVS by Anonymous Coward · · Score: 0

      Don't put those generated HTML files in version control. That's as pointless as putting your built executables in version control.

    10. Re:CVS by Anonymous Coward · · Score: 0

      That's because CVS is just a wrapper around RCS. CVS was OK when there was nothing else to use, but now that there's Subversion, I don't care to put up with CVS's stupidities.

    11. Re:CVS by bendawg · · Score: 1

      We generally try to use source control systems as a distribution method..Maybe that's our main problem.

    12. Re:CVS by Minna+Kirai · · Score: 1

      Any ideas how to resolve this?

      Idea 1: Get RoboHelp fixed. A software tool shouldn't blindly erase subdirectories that it doesn't recognize.

      Idea 2: Since you probably can't really change RoboHelp, work around it. Don't let there be a CVS directory present when RoboHelp runs. Basically, create a script which creates a new temporary subdir, copies your input files there, runs robohelp on them, and then copies everything back out to where they really belong.

    13. Re:CVS by dubious9 · · Score: 1

      It also depends on what he is coding in, and what tools he is using. The thing that drives me up the wall with CVS is that it's hard to do moves and renames, both of which are crucial to refactoring-friendly languages like Java. Also the lack of atomic commits can be truely infuriating. Same with lack of change sets. You shouldn't pick a SCCS (source code control system) without understanding why all these things are good.

      However CVS does have whole lot more tools available for it than SVN does. However, since he's just supporting himself, why not go out and buy a BitKeeper license. Sure it's a couple hundred dollars but it's included GUI tools are worth it. It's got a windows client and you can try before you buy. With a large code base like this guy has, it's really worth,

      In conclusion, there are two main SCCS philosophies now, those who want to replace CVS, like SVN, and those who want to improve upon SCCS in general, a la BitKeeper.

      --
      Why, o why must the sky fall when I've learned to fly?
  3. CVS by renehollan · · Score: 2, Interesting

    not the overkill of Subversion, and a bit dated, but it'll do.

    --
    You could've hired me.
  4. PVCS by $exyNerdie · · Score: 1


    I have used PVCS in the past. Very good version control application. I am not sure about the cost though but benefits could outweigh cost. Here is the company website.

    1. Re:PVCS by ducleotide · · Score: 2, Informative

      I disagree, PVCS is awful... it's expensive, the 'GUI' interface is not at all intuitive, the server is unreliable and it doesnt scale. It also lacks (or hard to find) a good diff'ing utility and a useful search utility.
      I prefer CVS with one of the gui add-ons like tortoise. In my opinion, the cost/benefit of CVS far outweighs PVCS. I have not used Subversion but hear great things about it.

    2. Re:PVCS by $exyNerdie · · Score: 1

      I disagree, PVCS is awful... it's expensive, the 'GUI' interface is not at all intuitive, the server is unreliable and it doesnt scale. It also lacks (or hard to find) a good diff'ing utility and a useful search utility.
      I prefer CVS with one of the gui add-ons like tortoise. In my opinion, the cost/benefit of CVS far outweighs PVCS. I have not used Subversion but hear great things about it.


      I disagree. It is very intuitive and functional. It is used at more than 16,000 customer sites worldwide with more than 400,000 licenses (I saw this on their website just now). Here is a demo. Some parts of demo has screenshots. Make your own judgement if you have patience to watch the whole demo.

      Disclaimer: I am in no way related to this company. Just happened to use it at a client site.

    3. Re:PVCS by iangoldby · · Score: 1

      I've used CVS and Merant Dimensions (which is the 'grown up' version of PVCS).

      CVS doesn't come with a GUI, but WinCVS (+ others mentioned in this thread) are available. Overall, the quality of these GUIs is roughly in-line with Dimensions - i.e. not amazing but usable.

      The main difference between CVS and Dimensions is in their basic philosophy of what a version control system is for.

      CVS works on the basis that it lets you get on with whatever you want to do, and then tells you what you did. I.e., which files you changed, what the changes were, etc.

      Dimensions demands that you tell it what you are going to do before you do it. You can't edit a file from Dimensions before first checking it out for editing. Dimensions also has no view of your disk. It assumes that if you didn't check a file out for editing then the copy on your disk is identical to the one in the repository. There is a project compare function, but it is inconvenient to use to say the least.

      Note that Dimensions offers a lot beyond what CVS will do in the area of configuration management, but it sounds like all you really want is version control.

  5. CVS and CVSTrac by grotgrot · · Score: 1

    I would recommend using CVS and CVSTrac. They both work fine under Windows (as servers). CVSTrac also gives you the benefit of browsing the code from the web, a bug tracker and a Wiki.

    1. Re:CVS and CVSTrac by lightspawn · · Score: 1

      CVSTrac also gives you the benefit of browsing the code from the web, a bug tracker and a Wiki.

      svn allows webdav access through either an apache module or its own daemon. The other features you mentioned seem to be way outside the scope of a source control tool (IMHO but YMMV).

    2. Re:CVS and CVSTrac by grotgrot · · Score: 1

      The OP said they think svn is overkill for what they want. Personally I think of svn as CVS II, and expect many people to migrate eventually (probably about the same speed as migration from Apache 1 to Apache 2).

      The CVSTrac features are really nice, especially if you want to show a PHB what is going on, ro have them actually participate. For example, see the timeline feature. Having all your CVS checkins, wiki and bug tracker items combined is really nice.

  6. CVSNT + WinCVS or Perforce by DamienMcKenna · · Score: 2, Informative

    Due to the fact that SVN isn't available for Windows (a native port, no cygwyn stuff), I recommend either Perforce or CVSNT + WinCVS. I've used CVSNT at work and home for some time and it works great.

    1. Re:CVSNT + WinCVS or Perforce by Anonymous Coward · · Score: 1, Informative

      Due to the fact that SVN isn't available for Windows...
      Huh? I may be missing something here, but I personally used Subversion for windows and it does work. What do you care what it's linked against?

    2. Re:CVSNT + WinCVS or Perforce by dirtydamo · · Score: 1

      Due to the fact that SVN isn't available for Windows (a native port, no cygwyn stuff)

      a.) Who cares? If it workrs it works.

      b.) I think you're wrong here. I just did a dependency analysis on svn.exe, and I see no dependencies on cygwin1.dll.

    3. Re:CVSNT + WinCVS or Perforce by DamienMcKenna · · Score: 1

      > I just did a dependency analysis on svn.exe, and I see no dependencies on cygwin1.dll.

      The client of daemon?

      Damien

    4. Re:CVSNT + WinCVS or Perforce by bluedream · · Score: 1

      Unfortunately this poster is wrong. As well as native port of SVN... There is TortoiseSVN which is a Window Explorer plugin that make SVN completely easy to use. --Give a man a beer and he'll waste a day. Teach a man to brew beer and he'll waste a lifetime

      --
      savethedollhouse.com
    5. Re:CVSNT + WinCVS or Perforce by BusterB · · Score: 1

      We use subversion at work all the time, both for the client and the server.

      For the server, it is best to setup Apache, and perhaps PHP to run websvn if you want a nice web interface. Also, install mod_auth_sspi so that you can use native NT authentication.

      For the client, TortoiseSVN and AnkhSVN work great for Explorer and Visual Studio.NET integration.

      All of this is native Win32. Subversion itself uses the Apache Portable runtime to work cross-platform, not Cygwin.

  7. QVCS by prostoalex · · Score: 2, Informative


    The place where I work (embedded software development as well) uses QVCS. It was there before I arrived, so I am not sure about the setup, but overall works great, and the license cost maxes out at $100 for 4 users. You install it on a Windows box, and then launch the client copies by providing a shortcut to the server install, so cannot run more than 4 simultaneous copies, but that works for us.

    1. Re:QVCS by iangoldby · · Score: 1

      QVCS is fine in terms of what it sets out to do. But it isn't a patch on CVS + WinCVS, which is free.

  8. Component Software RCS by jimchar · · Score: 1

    I've used Component Software RCS http://www.componentsoftware.com/ several times on small project with good (not perfect) results. There is a no cost option that you might be able to use.

    1. Re:Component Software RCS by MarkGriz · · Score: 1

      I'll second the vote for CS-RCS

      Several years ago I was in a similar situation to the original poster - lone developer, several smallish projects, manually managing files. I'm fairly certain it was an Ask Slashdot that led me to CS-RCS. As a lone developer, I didn't see much need for a complex CVS system. RCS does a great job for my needs, and was free to boot. They do offer a paid "Pro" version, which offers more features. They have a decent chart that compares the free to the pro version.

      CS-RCS integrates well into Windows Explorer, and makes it easy to Check in/Check out/Compare revisions right from your editor.

      --
      Beauty is in the eye of the beerholder.
  9. Tortoise CVS by grent246 · · Score: 2, Informative

    I have had great success using Tortoise CVS. It allows you to use a local directory as your repository rather than having to set up a CVS Server.

    It integrates into the Windows shell so you can very easily see what files have changes visually from the icon, and all normal CVS operations can be done from the context menu in Windows Explorer.

    1. Re:Tortoise CVS by an_mo · · Score: 1

      there is a tortoins for subversion also

  10. or cvs by akookieone · · Score: 3, Informative
    I like subversion as well, and its a good time to jump on that band-wagon as the product is mature enough now you shouldn't have to work very hard to defend its use over other older/established tech.(If it were up to me entirely, this is what I would use.)

    On the other hand, cvs isn't terrible - and you don't need to be doing OSS or huge # of devs to warrant its use. Cygwin allows you you run in windows, and there is also a windows version of the cvs server.

    But look, if you are developing something windows based, and using MS products or IDE's, VSS is not out of the question...it plays well with other MS tools, so it might make the most sense.

  11. The obvious recommendation is CVS by ObviousGuy · · Score: 3, Interesting

    As everyone else around here attests to, CVS is the obvious choice.

    But my question is what kind of company is it that can't afford to pay for business software? As this kind of thing can be deducted from taxes, it makes a lot of sense to let the company pay for the software and enjoy the tax relief.

    Even if the company is just you, it would be better to let the corporation pay for it and not pay full price on the software out of your salary.

    Charge your next customer a little more and use the difference to pay for some software. Of course it makes sense to use free software whenever possible, but I can't imagine agreeing to being taken advantage of by a company like you are describing.

    --
    I have been pwned because my /. password was too easy to guess.
  12. Source Safe by omibus · · Score: 2, Insightful

    Comes with Visual Studio, and will do just about anything a group of 1-5 developers could want.

    I know people trash Source Safe, but for small groups of developers, it isn't that bad.

    Otherwise, you could try The Valt (http://www.sourcegear.com/vault/index.asp), but you need SQL Server to run it.

    --
    Bad User. No biscuit!
    1. Re:Source Safe by rrsipov · · Score: 5, Informative

      My team used to use Source Safe (6.0), and with just a few people it ended up being really horrible. The files are stored in a big binary (I think) mess which caused problems at least twice when SourceSafe decided it was corrup. Tool support (at the time) was pretty awful (outside of Visual Studio, and a few other programs). We moved to CVS. While CVS has some issues (handeling of binary files, etc) it works. I have had problems with Windows GUI tools though. The best we've found seems (ironically) to be LinCVS (lincvs.org). Also, subversion in local mode might work for you. Finally, I seem to recall that several major commercial tools have a free 1 or 2 user limited version.

    2. Re:Source Safe by Specialist2k · · Score: 1
      Comes with Visual Studio, and will do just about anything a group of 1-5 developers could want.

      While VSS basically works if you don't have any special needs, simple things such as branching and merging becoma a nightmare - let alone the lock philosophy preventing parallel work on the same file.

    3. Re:Source Safe by Matje · · Score: 1

      Did you now you can turn the exclusive locks off? You can set it as a default somewhere, otherwise look at the checkout options when you're checking out files in the sourcesafe client. It's been awhile since I had merge conflicts but I recall there being a nice colorful interface if you need to resolve any conflicts.

    4. Re:Source Safe by Specialist2k · · Score: 1

      Nope, didn't know that, but it doesn't matter anyway as I am just finishing the migration from VSS to subversion using this migration script as a starting point. ;-)

    5. Re:Source Safe by outcast36 · · Score: 1

      Just to add my $0.02, I have heard of bad things happening with VSS, but if it's just you then you probably won't have those problems.

      The Vault is a decent product, and it can run on SQL Server OR MSDE which is a free download. If you're only using it for yourself the Vault is free as well.

      Free is much better than the arm + leg charged for VSS.

    6. Re:Source Safe by JediTrainer · · Score: 1

      And to add my $0.02, I switched our team to CVS after our VSS database ended up getting corrupted, losing all of our data in the process.

      Sure, you always have backups, but it turned out that we lost a week's worth of work anyway.

      We haven't lost anything with CVS (yet - knock on wood). Our codebase is now somewhere around 350k lines and there's been no problems.

      --

      You can accomplish anything you set your mind to. The impossible just takes a little longer.
    7. Re:Source Safe by outcast36 · · Score: 1

      my thoughts are with your beloved missing code

    8. Re:Source Safe by yamla · · Score: 1

      Microsoft does not use it, at least not for most of their development. It is just too unstable and does not scale up well. If Microsoft refuses to eat their own dogfood, why the heck should we?

      Visual Source Safe is probably better than using nothing at all. It is probably worse than any other alternative, however.

      --

      Oceania has always been at war with Eastasia.
  13. Perforce by Bronster · · Score: 3, Interesting

    I'd definitely recommend Perforce as well, but it's not free. Of course, as a single user you can use the 2 users/2 workspaces design supported without a licence.

    Believe me, you'll be happier than with the current crop of free stuff (though I'd be tempted by Subversion if it didn't depend on so many things just because they're the latest cool thing).

    Perforce is nice on Linux too in that it's just a couple of statically compiled binaries that work everywhere. Pleasant change to dependency hell (like getting any recent piece of software onto Debian stable)

    1. Re:Perforce by MobyDisk · · Score: 1

      Not necessarily. There is a 2 user evaluation license, but the EULA forbids production use. There is another F/OSS license. Check their pricing FAQ.

      http://www.perforce.com/perforce/price.html

    2. Re:Perforce by markhb · · Score: 4, Informative
      I believe you're confusing two separate issues. The agreement relating to "no production use" is the evaluation, where you can have them give you a limited-time license key for n users to evaluate the software. The 2-user, 2-workspace configuration is gratis:
      You can download and use any Perforce software product free. All Perforce software you download is fully functional, with the exception of the Perforce Server, which allows only two users and two client workspaces when used without a license.
      That is from the page you referenced. Also, from http://www.perforce.com/perforce/loadprog.html,
      You may use software downloaded from Perforce for any purpose you want and for as long as you like. The Perforce Server supports only two users and two client workspaces unless used with a Perforce License.
      As far as I have been able to tell, there is no restriction against using the 2-user version in production. If you have an example of such a restiction, please post it.
      --
      Save Maine's economy: write stuff down. All comments are exclusively my own, not my employer.
  14. subversion is easy to use by Adhoc · · Score: 5, Informative
    As long as you stay on a single box, subversion is very easy to use.
    svnadmin create C:\repo
    cd <workdir>

    svn co file:///repo #(might want to check the syntax on that, not sure if it's different on windows)
    svn add foo.c
    svn commit

    etc, etc
    While the details might be off a bit, it will be something like that easy. there is excellent documentation for subversion at http://svnbook.red-bean.com/ which covers all the bases really. Where subversion gets complicated is setting up network access, but even that isn't that hard. A couple of hours of reading the red-bean book and you'll be all set. In any case it isn't really any harder than CVS to setup and is more refined. RCS is probably too weak. No support for directories structures. good luck. Adhoc
    1. Re:subversion is easy to use by hummassa · · Score: 1

      As long as it's an NT shop, as opposed to a 9x...

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
  15. Tortoise SVN by manonthespoon · · Score: 5, Informative

    Tortoise SVN is a version of the subversion client server that integrates with windows 2000, XP.

    Right click on a file or folder to check it in, create a repository and just about everything else. It's actually very simple to use and you get all the power of a Subversion.

    1. Re:Tortoise SVN by key45 · · Score: 2

      Definitely, Tortise SVN makes version control easy.

    2. Re:Tortoise SVN by nick_danger · · Score: 3, Informative
      Definitely Tortoise w/subversion.

      I'm using it in a very similar situation: I'm the sole developer for a Windows based Delphi application. I've found it to be VERY easy to use; it supports branches/version snapshots/etc, it's fast, and it easily supports binaries as well as text. Tortoise integrates into the Windows explorer, providing icon overlays in the tree view and the file view indicating the status of tracked files and a bunch of other things. No need to pull up the DOS penalty box to issue commands -- it's all there. It's really sweet.

  16. subversion by an_mo · · Score: 1

    definitely go for subversion. If you look for a guide on how to set up svnserve+ssh on win xp do a google search of svnserve ssh on xp

  17. Perforce by midimonkey · · Score: 1

    Intuitive and works like a charm.

  18. What a coincidence.... by Danse · · Score: 2, Informative

    I was just researching this very question for myself today. Found a nifty comparison between several source control systems. Perforce and BitKeeper seem like the most complete systems, with Monotone and Subversion close on their heels. The trial version of Perforce works for up to 2 people with all features enabled. It gets kind of expensive if you need more than that ($750/seat). Couldn't find actual pricing for BitKeeper, although they were prompt in replying to an email to their sales address and I'm discussing it with them.

    --
    It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
  19. How about Darcs? by Wonko · · Score: 3, Insightful

    How about Darcs?

    I was just recently looking to move away from CVS for my personal projects. I'm not always home, and I wanted to have copies of my repositories on at least my laptop and desktop.

    At first, I was leaning towards trying out GNU Arch. But I really wanted something that had a working win32 client. So I took a look at Darcs.

    I'm very happy with it so far. It is extremely easy to set up and use (but I haven't seen any gui frontends if that's the kind of thing you want). It is also very easy to keep multiple repositries in sync.

    I've read that it can be slow for large projects. I don't remember reading the definition of large, but none of my repositories qualify :).

    You might also want to check out this comparison or this comparison of revision control systems.

  20. SVN for Windows by DamienMcKenna · · Score: 1

    The point of having a native port is so that you don''t have to download a vast quantity of extras just to run one daemon. Not everyone has broadband...

    Damien

    1. Re:SVN for Windows by empty · · Score: 1

      The point of having a native port is so that you don''t have to download a vast quantity of extras just to run one daemon. Not everyone has broadband...


      But the original post is to Ask Slashdot. If he can read /. he is probably not afraid of a few extra Mb bandwidth for extras.

    2. Re:SVN for Windows by The+Bungi · · Score: 1
      You don't need the daemon if you're working with a local repository (at least on Windows), which is I suspect something that would work for the guy asking the question.

      SVN used that way is more like VSS than CVS. CVS AFAIK can't work without a daemon (or service in Win32).

      However, if you work with a local repository, dropping VSS for SVN is a bit dumb because you lose the GUI (TortoiseSVN is nice but the VSS explorer is better, IMO) and the integration with MS tools (the one SVN SCC I've tried with VS.NET was a bit flaky).

      Of course if you want real source control then neither VSS nor SVN (in local mode) are real options. But again, the OP isn't asking for an industrial strength solution.

  21. Winzip by Halfbaked+Plan · · Score: 1

    Well, not really Winzip. Use the Win32 port of infozip. Put it in your build script, have it name the zip of your build directory with a datestamp in the filename. Have it build a zip each time you run make, or whatever your build script is.

    Remember, folks, this is a solitary programmer question.

    --
    resigned
    1. Re:Winzip by PylonHead · · Score: 4, Insightful

      Spoken like someone who has never used version control. Just because he's all on his lonesome isn't a good reason to miss out on all the fun:

      With version control I can see the last three times I changed a specific file. I can show the diffs for my latest change at the touch of a button. I can keep seperate branches for release 1.2 and release 2.0. I can merge the bug fixes I apply to version 1.2 into 2.0.

      It takes a while to understand the benefits of version control, but once you do, you'll use it for all your development, solo or otherwise.

      --
      # (/.);;
      - : float -> float -> float =
  22. Re:Subversion - Don't forget Tortoise by x00101010x · · Score: 2, Informative

    Another big plus to subversion under windows is TortoiseSVN.
    This client runs as a shell extension right in explorer, so now all your VCS commands are just a rightclick away. It also includes the ability of configuring what commands are nested in the Tortoise SVN submenu, and which are out on the main context menu. All the ease of use of winzip or powerarchiver for version control. It also adds useful columns to your details view, and has a handy repository browser.

    If you're on the go a lot and hop between systems, setting up apache for windows and adding OpenSSL and the Subversion modules are easy (drop me a message and I can point you to some good how-tos, but the Subversion Book (on tigris.org) is pretty much all you need). Once the modules are in place, it's only half a dozen lines in your httpd.conf to open up authenticated https access.

    I currently use subversion+tortoise on all my windows machines and the commandline interface on my linux laptop. I run the server from my Win2k workstation with a single port routed through my firewall box.
    I use it not just for projects, but also for my thunderbird and firefox profiles (except for the platform specific files), my mp3 collection, desktop, documents, pretty much everything i use on a daily basis.
    I also have an archive tree thats not actively checked out anywhere.

    --
    DONT PANIC
  23. TortoiseSVN in local repository mode... by zhiwenchong · · Score: 4, Informative

    ... is probably what you want. A single GUI app, no Subversion server necessary. It uses a folder on your hard drive as the repository instead of a WebDAV server etc. It seems to implement Subversion internally or something...

    TortoiseSVN is here

    I use version control on my local Win32 machine to manage different versions of files. I've used both TortoiseCVS and TortoiseSVN in local repository mode, and I highly recommend TortoiseSVN over TortoiseCVS. Forget CVS, really! SVN is much better, even for personal use. It is lightweight, and you don't have to run any server -- the client manages everything for you. Here's information on running TortoiseSVN in local repository mode (with screenshots and all)

    Quote:
    "If you're not working in a team but working alone on a project and still want your work under version control you can also access a repository locally. This kind of repository access is also very handy if you just want to try out some Subversion commands and you don't want to risk screwing your "official" repository."

  24. How exactly can the first post be redundant? by b00m3rang · · Score: 1

    Without restating the original article?

  25. What's wrong with CVS? by antiher0 · · Score: 1
    According to this page, it should be possible to use CVS on Win32 platforms. As long as you're maintaining your code on one machine, this might be good enough. They suggest using Win32 CVS against a *nix CVS server, but have this to say about single-machine CVS:

    The second way is known as "local" or "non-client/server" CVS. This lets you run CVS if you have only Windows machines. However, due to issues (a) with local CVS on Windows, and (b) with the suitability of Windows as a server operating system in general, we would generally recommend this more to try out CVS and get a feel for it rather than for production use.
    Perhaps not the best solution, but it's free, and will probably work just fine for you.
    1. Re:What's wrong with CVS? by Anonymous Coward · · Score: 0

      What's wrong with CVS? It's not as good as subversion, which is also free.

  26. Serious questions by bmac · · Score: 2, Interesting

    I'm in the same boat as the question poser, and I've got some questions to ask:

    Does CVS/Subversion automatically track changes to directory trees of code over time, or do you have to somehow "stamp" a save point or snapshot or somesuch?

    I do a fair bit of code generation (due to C# and C having no generics), so will a version control system be able to track changes to data that is relevant to my code. As well, I use text and Excel files as design docs, so can they be included in the "files that matter" set?

    Sorry to sound like such a n00b, but I've always been the lone programmer, even on large projects. It seems very hard for me to believe that I will gain a cost benefit (as per time invested) from a version control system. Sure, I've not read up on the different packages, but what I'm asking here is for the expert synopsis, if someone would break down the flow for me, please.

    Thanks in advance.

    Peace & Blessings,
    bmac

    1. Re:Serious questions by Anonymous Coward · · Score: 1, Informative

      One of the real benefits is being able to make changes, test them, and then revert all or some of the changes easily when needed, i.e. a safety-blanket.

      Another is being able to track the history of your work in a blow-by-blow fashion: knowing why changes were made is important.

      The ease of use is the key factor: you want to be easily able to add files to the version control repository, determine which files have changed and how they have changed vis-à-vis the repository copy, and rapidly add new versions to the repository. If you have to memorise a forest of command-line commands, or navigate a complicated GUI, you won't use it. Copying stuff to CD-R also takes time.

      The Tortoise versions of CVS and Subversion both score very high on those criteria: you are always a menu-click away from the necessary actions, and the Windows Explorer shows the current state and version information. The file properties sheets are enhanced with new ones showing the versions & branches of the file in the repository, and visualising differences between the current and any past version is also easy.

      So your question is: what can I possibly lose by not having keept your work under version control? Is the risk worth it?

      Try either of Tortoise SVN or CVS (using a local repository in both cases, so a complicated repository setup is not necessary), they both have fairly decent documentation (there is no way to avoid a couple of hours of reading), but remember that they both require some changes and adjustment in working methods: give them time.

    2. Re:Serious questions by stevey · · Score: 2, Informative

      (Disclaimer I once wrote an emacs mode for subversion, but have never used it in anger).

      CVS works more in the "stamping" way you suggest.

      When you create a project you import all the files that you care about, the sources the test scripts, and any documentation that you care about.

      After that you checkout a clean copy from your new repository and have a blast working on it.

      When you have implemented a new feature, or made a new change you then run 'cvs commit'.

      The commit process examines the local files for any changes from the copies in the repository (ie the last stamp) and then saves them - after running an editor to ask for some description of the changes.

      Alternatively you can trash all the work you've just done and revert to the previous checkpoint - or any other point in the history of each file.

      At any time you can run 'cvs diff' to see what has changed in your local copy but you must manage the committing yourself. All the source control systems I've used have been like this.

      In practice it works well as you only checkout once then you make regular commits based upon the code you're working on. eg commit after a new feature, or a bug fix.

      One thing worth noting is that 'cvs diff' will just tell you that a binary file has changed, without showing the details, so a cvs diff isn't very useful on an excel spreadsheet.

      I hope that helped.

    3. Re:Serious questions by Hast · · Score: 1

      Just a note to the other comment. If you use binary files you can include them but they won't be properly managed. So you can't do diffs and such on them. Binary files includes Excel and Word files. I'd recommend that you keep you documentation in pure text files (or Latex/HTML if you want to have markups).

    4. Re:Serious questions by rrsipov · · Score: 2, Informative

      I don't have any experice w/ subversion. With CVS the changes are tracked per-file. You can "tag" a directory structure to create a named point that you can later use. For binary files CVS just keeps a copy of each different version. As I understand it subverion is a good bit better than CVS on a number of things including: commands to rename or move files/directories which preserve the information about the change (there is no good way to rename or move anything in CVS, although some if you have a small team you can work around this with some hacks). Subversion is also supposed to be much smarter about storing binary files, in terms of storing binary diffs, but this still doesn't allow you to compare the contents the way you can with text files. If possible, instead of Excel, look at something like OpenOffice - it has a 'flat xml file' format (the default is xml zipped into an sw* file). This would allow you to check it into CVS/Subversion/anything-else, and then use the powerful text comparison utilities that are part of these tools.

    5. Re:Serious questions by Noltar · · Score: 1

      I haven't worked with Subversion too extensively yet, but it does track changes to directories as well as files. Even tracking whether you've deleted, moved, or renamed directories. You can checkout the commit number for whenever those directories were removed, or even checkout the state of that directory at a certain point in time and pull it into your current working environment. The Subversion book covers this in more detail. It also tracks all kinds of files... source code, documents, even binary files (libraries you may have created, imported, etc...). Hope that helped.

    6. Re:Serious questions by bedessen · · Score: 1

      You should read the CVS book: http://cvsbook.red-bean.com/cvsbook.html

      In short, with CVS you check out files from the repository, work on them (edit, compile, test, whatever) and when they are in a suitable state you check them back in (commit) which causes the version number associated with each file to automatically increase. If your working dir is in a particularly interesting state, for example a release version, then you create a "tag" which saves that state, essentially remembering the version number of each file for the current configuration.

      As far as automatically-generated files, the standard practice is to not keep them in CVS. So say you have foo.sh which creates bar.c and baz.c. You add code to your makefile so that it knows that if bar.c or baz.c need updating that foo.sh is to be run. foo.sh is kept in the repository and is versioned, but bar and baz are not, they are just regular files in the working directory. When you start with a fresh checkout they will not exist, but when you run make they will be generated. Typically each developer maintains his/her working directory so it's not like these files need to be created every time. Essentially, you don't keep autogenerated things in the repository because they can always be generated in your working dir. If the generation is not automated then you might choose to include them, however.

      CVS is generally intended for text files, but it can also be used with binary files but it will be inefficient. Don't store large binaries in the repository, if possible.

  27. run the server on UNIX by jmason · · Score: 1

    Do yourself a favour -- don't try running the server on a Windows machine, it'll be a world of pain.

    Just get hold of a clunky old PC, install linux, and use that as a dedicated source code control server with whatever system you want to use. You'll save yourself a lot of bother (and a bit more immunity to disk crashes, too).

  28. Subversion and TortoiseSVN by Otis_INF · · Score: 1

    install these 2, setup subversion and you're done. I use it for all of our .NET code and it works very very very good.

    --
    Never underestimate the relief of true separation of Religion and State.
  29. What revision control system does MS use? by dimss · · Score: 1

    What revision control system does MS use?

    1. Re:What revision control system does MS use? by Anonymous Coward · · Score: 0

      Sourcesafe. Shockingly enough.

    2. Re:What revision control system does MS use? by Grab · · Score: 1

      SourceSafe. Don't go there. Just don't. I've yet to find one good thing about SourceSafe - even the interface (the much-touted MS advantage over free software) isn't noticeably better than WinCVS.

      Grab.

    3. Re:What revision control system does MS use? by Anonymous Coward · · Score: 0

      Do they seriously use SourceSafe for internal developing? Wow, that explains alot then, doesn't it.

    4. Re:What revision control system does MS use? by RomSteady · · Score: 3, Interesting

      Internally, Microsoft uses Source Depot, which seems to be a source-modified version of Perforce.

      It has some additional features that Perforce lacks for doing per-checkin builds and acceptance tests.

      --
      RomSteady - I came, I saw, I tested. GamerTag: RomSteady / http://www.romsteady.net
    5. Re:What revision control system does MS use? by V.+Mole · · Score: 1

      SourceSafe.

      No, they don't. Which should be a pretty clear warning. Your other comments, though, are dead on!

    6. Re:What revision control system does MS use? by grem · · Score: 1

      Korby Parnell (works for Microsoft writing Visual SourceSafe tech docs) replied to this very question in his blog comments. Here is his response: "As far as I know, Microsoft does not have an 'official' SCM product. I can't speak for all teams, of course, but my team uses Visual SourceSafe for source control."

      --
      Murphy's law - "Anything that can go wrong, will." (Actually, this is Finagle's law, which in itself shows that Finagle
    7. Re:What revision control system does MS use? by TheGrayArea · · Score: 2, Interesting

      He's using weasel words. The entire product code base is stored in source depot. There's still a few stragglers using a few sourcesafe bits, but if you are in or touch any of the major products you're definitely using Source Depot.

      --

      This space for rent.
  30. Source Safe by dnnrly · · Score: 2, Insightful

    I hate to admit it, but for single developer projects Source Safe is actually really handy! It's absolutely pants at handling merging but this shouldn't be much of a problem if there's just one of you or even in a small team of 3 or 4 should you choose to expand the operation.
    It keeps track of eveything and allows for easy versioning and comparison between versions. I found it's great if you find new problems cropping up after a certain date and you want to compare what changes you made.

    Beware though, it's not much good at anything else so if you want to use multiple branches or get frequent source updates from the client or anywhere else I'd consider something else.

  31. well then by Anonymous Coward · · Score: 0
    Oh, and the code I'm developing is not open source

    Well, then we don't have to help you.

  32. Subversion by umrk · · Score: 1

    Why is subversion overkill? It's easy to install and run. Use it!

  33. FreeVCS by jwbozzy · · Score: 2, Informative

    I'm currently using FreeVCS to maintain a source tree with 965 files, about 30k each. It's an interesting approach in that it stores all the code in a database (DBISAM by default). It's designed for Delphi developers, but I am using to store a game engine (C++) and the associated scripts (TorqueScript), and I haven't had a problem with it yet. It also implements check out messages (why did you check this file out? "To fix the wankiness in doSomething()"), which can be quite useful once you get into multi-developer projects (like the one I'm on).

    --
    perl -e 'printf("mmm %x\n", 3735928559)'
    1. Re:FreeVCS by Anonymous Coward · · Score: 0

      Gross. It only allows one person to have a file checked out at a time? That is so 3 decades ago.

      There is no reason to have check out messages in CVS/Subversion style systems, only check-in messages.

  34. Microsoft by turgid · · Score: 0, Troll

    Ask Bill nicely. I'm sure he'd look after your source code for you and make sure none of it got out.

    1. Re:Microsoft by Anonymous Coward · · Score: 0

      wtf is wrong with you retarded zealots

    2. Re:Microsoft by Anonymous Coward · · Score: 0

      It was supposed to be a joke referring to Microsoft's attitude towards Intellectual Property. Don't you guys remember the hotmail license that basically said "anything you pass through this service becomes the property of Micro$oft?"

  35. Re:Source Safe == BAD by V.+Mole · · Score: 1

    No, I'm not just dinging it because it's an MS product. I've used VSS extensively, and my conclusion is that you should not put anything valuable into VSS unless you have backup copies elsewhere, which sort of defeats the purpose. It's a fragile POS, breaks at glance, and provides no functionatility that is not better implemented elsewhere and more cheaply. If you're willing to pay for a product, then both Perforce and Bitkeeper are lightyears beyond VSS. If you want free, then there are a variety of choices, Subversion with a local repo probably being the best and easiest (for Windows, at least).

    Anyway, even if you *are* a lone developer, branching can be useful. VSS branching sucks, and trying to merge even more so.

  36. PVCS is aweful. by Anonymous Coward · · Score: 0

    I have used PVCS since version 3 (for DOS) through to its current vresion. It is a horrific piece of garbage that continues to be successful based solely on the fact that it's a brand name. It's clumsy, un-intuitive and just plain obstructive for a developer and a holy terror for a source code administrator. I've seen too many projects be hampered by PVCS to trust it any longer. Too many times, too, have I seen source code merely vanish into the Ether. And under no circumstances should you consider using this garbage for a solo project. I'd rather use SourceSafe than have to spend another project with PVCS. The sooner people get their heads out of their asses and learn about other, more effective products (e.g. StarTeam), the better off we'll all be.

    16,000 customer sites worldwide with more than 400,000 licenses

    And how many of them are satisfied with it? Sales numbers are not indicative of quality (See: Windows ME).

    But thank you for the commercial. Your boss must be proud that you're putting in the extra effort to advertise their product on your lunch hour.

    1. Re:PVCS is aweful. by crucini · · Score: 1

      I wish you'd log in. Your informed opinion deserves better than to languish at 0.

      The mystery of truly horrible software that continues to sell is a fascinating one.

  37. Sourcegear by gadders · · Score: 1

    Not used it, but it looks pretty good if you're in the Windows world - like a better version of VSS. And it's free for a single user here. Also, the guy that runs the company - Eric Sink - is quite well know in blogging circles. Some of his columns about starting a company are linked to from /.

  38. Re:Source Safe == BAD by The+Bungi · · Score: 1
    Bullshit. What about "copies of everything somewhere else" is different from making backups of the repository every day? Regardless of whether you use VSS or CVS or anything else. Perhaps you're confusing "source control" with "backup".

    VSS is hardly the cream of the crop, but what it does do it does well. It is not an industrial strength SCC, and Microsoft has never sold it as such. So yes, branching and merging are not that hot, and it's not a client/server system and etc., but if you need that then get something else. But for medium-sized projects with 1-6 developers it works perfectly well. As long as you don't try to be clever and try to coax it into doing something it was not designed to do.

    If you know what you're doing you should never get corrupted files or lose history or anything like that.

    Many people use VSS because it ships with Visual Studio. Many people have fucked things up because they had no idea how to manage source control, and of course they blame it on the tool. "Bwaaahh, my 6.2GB VSS database that I never defragmented or checked is corrupted, bwaaahhh, VSS is a POS". If Microsoft had shipped the best SCC tool in the world with their development tools people whould still fuck things up, because they have no idea of what they're doing.

  39. Vault by swmccracken · · Score: 1

    Soucegear vault. (http://www.sourcegear.com/)

    Similar feature set as VSS, runs on MSDE (which is free) or SQL Serer 2K so it's a heck of a lot more robust, supposed to intergrate into VS.Net as well as VSS.

    Single user edition is free ( http://software.ericsink.com/20040213.html#10151 )

  40. Re:Source Safe == BAD by Minna+Kirai · · Score: 1

    Bullshit. What about "copies of everything somewhere else" is different from making backups of the repository every day?

    There's a big difference! As long as you have a backup of the most recent version of a CVS repository, you're fine.

    The allegation against VSS is that it frequently corrupts its own database. A backup copy of the corrupted data is no good. Even if you keep multiple historical backups, its still no fun to restore each of those from tape to search for the last non-corrupted copy.

    Some people even claim that VSS (in whatever configs they use) is so unstable that the MTBF is too fast for a daily backup to protect against.

    As long as you don't try to be clever and try to coax it into doing something it was not designed to do.

    Any CM system which requires you to "lock" or "check out" a file before editing it is flawed by design.

  41. Re:Source Safe == BAD by V.+Mole · · Score: 1

    Bullshit yourself. Of course you back up the SCC repository. The problem is that VSS repositories go bad without showing the signs until later. So you have nice backups of corrupt data. Woohoo! And yes, one can sometimes pick through and fix the problem. It's a lovely way to spend the day or weekend.

    If you know what you're doing you should never get corrupted files or lose history or anything like that.

    Absolutely correct. That should never happen. But we did know what we were doing, and it happened none-the-less. Nor is that a unique experience - Google around and you'll see plenty of experienced people who've had issues with VSS.

    VSS may be adequate for a small developer group that never has to support a released product (no useful branching, remember?) and has time to babysit it. But there's nothing it does that CVS doesn't do better, and CVS is free, reliable, and a hell of a lot more capable. In the extremely unlikely event that a CVS repository does go tits up, one can fix the damn thing with a text editor (I think I've had to do this maybe once in several years of heavy CVS use).

    Is CVS perfect? Of course not. But there's no reason to recommend VSS over CVS.

  42. Re:Subversion - Don't forget Tortoise by manastungare · · Score: 1
    I use it not just for projects, but also for my thunderbird and firefox profiles [...], my mp3 collection, desktop, documents, pretty much everything i use on a daily basis.
    I was thinking of doing this, but is the space requirement of such a scheme justified? I never tried it, and I'd like to see some numbers. TIA!
  43. Re:Subversion - Don't forget Tortoise by x00101010x · · Score: 1

    The repository doesn't get too bulky, especially since it only stores patch files from one revision to the next, not complete copies. So things like mp3s only take up their normal filesize (about) in the repository, since they're unlikely to change.
    I don't know if subversion has any special handling of binary files, or if it just stores a whole copy each time (instead of the patches i know it does for text files).
    The real issue, is how long it takes to do your initial checkout. If possible, I try to do my initial checkouts on the same LAN as the repository, and then I use a subversion command ('svn switch --relocate lanurl wwwurl') to change all the working copies to use the internet url instead of the local network url for my 'server' (actually my win2k box running apache2).
    I've been thinking of doing a write up on how well it's working. I actually got the idea here on /. from some guy that kept his home directory in CVS. Check my journal, it'll probably be the next entry i get around to writing, and i'll include the checked out working copy size, vs all the .svn directories removed (not working copy) vs the actual repository size.

    --
    DONT PANIC