Windows Source Control for the Lone Developer? 109
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?"
Subversion (Score:2, Informative)
Re:Subversion (Score:5, Interesting)
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.
Re:Subversion (Score:1)
-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
Re:Subversion - Don't forget Tortoise (Score:3, Informative)
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 betwee
Re:Subversion - Don't forget Tortoise (Score:1)
Re:Subversion - Don't forget Tortoise (Score:2)
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
How exactly can the first post be redundant? (Score:2)
CVS (Score:3, Interesting)
Re:CVS (Score:1)
Re:CVS (Score:5, Informative)
Here are some links to get you started:
CVS On Windows [cvshome.org]
WinCVS GUI (very nice, uses Python undeneath) [wincvs.org]
Tortoise CVS [tortoisecvs.org]
CVS NT Wiki [cvsnt.org]
Component CVS for Windows [componentsoftware.com]
All of these are CVS for Windows tools. CVS is a great revision control system.
Re:CVS (Score:3, Informative)
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 [sourcegear.com] at work and it works great. It integrates well with Visual Studio and the provided client is easy to use as well.
Re:CVS (Score:2)
Re:CVS (Score:1)
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 ne
Re:CVS (Score:2)
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.
Re:CVS (Score:1)
Re:CVS (Score:5, Informative)
Re:CVS (Score:2)
Re:CVS (Score:2)
However CVS does have whole lot more tools available for it than SVN does. Howe
Re:CVS (Score:2)
You can download CVSNT from this web site [cvsnt.org].
PVCS (Score:2)
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 [merant.com] is the company website.
Re:PVCS (Score:2, Informative)
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.
Re:PVCS (Score:2)
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 t
Re:PVCS is aweful. (Score:2)
The mystery of truly horrible software that continues to sell is a fascinating one.
Re:PVCS (Score:2)
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 fi
CVS and CVSTrac (Score:2)
Re:CVS and CVSTrac (Score:2)
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).
Re:CVS and CVSTrac (Score:2)
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 [cvstrac.org] feature. Having all your CVS checkins, wiki and bug tracker items combined is really nice.
CVSNT + WinCVS or Perforce (Score:3, Informative)
Re:CVSNT + WinCVS or Perforce (Score:1, Informative)
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?
SVN for Windows (Score:2)
Damien
Re:SVN for Windows (Score:1)
But the original post is to Ask Slashdot. If he can read
Re:SVN for Windows (Score:1)
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.N
Perforce (Score:4, Interesting)
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)
Re:Perforce (Score:2)
http://www.perforce.com/perforce/price.html
Re:Perforce (Score:5, Informative)
Re:CVSNT + WinCVS or Perforce (Score:2)
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.
Re:CVSNT + WinCVS or Perforce (Score:2)
The client of daemon?
Damien
Re:CVSNT + WinCVS or Perforce (Score:1)
Re:CVSNT + WinCVS or Perforce (Score:2)
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.
QVCS (Score:3, Informative)
The place where I work (embedded software development as well) uses QVCS [qumasoft.com]. 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.
Re:QVCS (Score:1)
Component Software RCS (Score:1)
Re:Component Software RCS (Score:2)
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 int
Tortoise CVS (Score:2, Informative)
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.
Re:Tortoise CVS (Score:2)
or cvs (Score:3, Informative)
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 [cygwin.com] allows you you run in windows, and there is also a windows version of the cvs server [cvsnt.org].
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.
The obvious recommendation is CVS (Score:3, Interesting)
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.
Source Safe (Score:2, Insightful)
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.
Re:Source Safe (Score:5, Informative)
Re:Source Safe (Score:2)
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.
Re:Source Safe (Score:1)
Re:Source Safe (Score:2)
Re:Source Safe (Score:1)
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.
Re:Source Safe (Score:2)
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.
Re:Source Safe (Score:1)
subversion is easy to use (Score:5, Informative)
Re:subversion is easy to use (Score:2)
Tortoise SVN (Score:5, Informative)
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.
Re:Tortoise SVN (Score:2)
Re:Tortoise SVN (Score:3, Informative)
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 comm
subversion (Score:2)
Perforce (Score:1)
What a coincidence.... (Score:3, Informative)
I was just researching this very question for myself today. Found a nifty comparison [berlios.de] 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.
How about Darcs? (Score:3, Insightful)
How about Darcs [abridgegame.org]?
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 [zooko.com] or this comparison [berlios.de] of revision control systems.
Winzip (Score:1)
Remember, folks, this is a solitary programmer question.
Re:Winzip (Score:5, Insightful)
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.
TortoiseSVN in local repository mode... (Score:5, Informative)
TortoiseSVN is here [tigris.org]
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 [tigris.org] 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."
What's wrong with CVS? (Score:2)
Serious questions (Score:3, Interesting)
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
Re:Serious questions (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 ver
Re:Serious questions (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 f
Re:Serious questions (Score:1)
Re:Serious questions (Score:2, Informative)
Re:Serious questions (Score:1)
Re:Serious questions (Score:2)
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 numb
run the server on UNIX (Score:1)
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).
Subversion and TortoiseSVN (Score:2)
What revision control system does MS use? (Score:1)
Re:What revision control system does MS use? (Score:2)
Grab.
Re:What revision control system does MS use? (Score:2)
SourceSafe.
No, they don't. Which should be a pretty clear warning. Your other comments, though, are dead on!
Re:What revision control system does MS use? (Score:4, Interesting)
It has some additional features that Perforce lacks for doing per-checkin builds and acceptance tests.
Re:What revision control system does MS use? (Score:1)
Re:What revision control system does MS use? (Score:3, Interesting)
Source Safe (Score:3, Insightful)
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.
Re:Source Safe == BAD (Score:2)
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 choice
Re:Source Safe == BAD (Score:1)
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
Re:Source Safe == BAD (Score:2)
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
Re:Source Safe == BAD (Score:2)
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 non
Re:Source Safe (Score:2)
Visual Source Safe is probably better than using nothing at all. It is probably worse than any other alternative, however.
Subversion (Score:1)
FreeVCS (Score:2, Informative)
Sourcegear (Score:1)
Vault (Score:2)
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 )