CVS, part of the glue that holds open source development together, shows its age. Many competitors have emerged recently, fixing misfeatures and adding new ideas. Shlomi Fish (of the version control comparison fame) explores several current open source version control systems that may be better than CVS for your needs. Email Shlomi on how to add info for your favorite VCS on his comparison page.
Despite a large struggle getting my Apache configuration configured properly for use with Subversion WebDAV access, I’ve now transitioned one of my projects to Subversion (http://pdtp.org). I can finally manipulate my code repository in ways CVS wouldn’t allow, and do simple things such as, oh, removing directories which CVS is unable to do.
Subversion still has a number of small issues surrounding its current implementation, but overall it’s an excellent system and portable across multiple platforms, unlike other systems such as Arch. This is especially important to me as the applications being developed in my repository are cross-platform across Win32 and POSIX as well, and I certainly don’t want to alienate Win32 developers by using a *IX-only VCS.
With Windows tools like TortoiseSVN available (http://tortoisesvn.tigris.org/) this doesn’t seem like it will be an issue.
I think CVS is great. There are REASONS why you can’t just go and delete directories willy-nilly. And that’s not much of a limitation, since you can just delete the contents of the directories and tell CVS not to download empty directories.
CVS works, it is tested and it is time proven. I couldn’t be happier with CVS.
I don’t think you understood the point that these people are making. Many of use used to love and swear by cvs. But there comes a time when people realize that they don’t need to put up with silly constraints that CVS imposes. Other systems are at least as good, and stuff like subversion have numerious advantages that are easy to get addicted to.
There are REASONS why you can’t just go and delete directories willy-nilly.
The reasons being that RCS is incapable of providing versioning on directories.
Subversion solves this by making revisions repository-wide rather than file specific. The repository versioning is sensible, as opposed to the wacky versioning done by RCS.
And that’s not much of a limitation, since you can just delete the contents of the directories and tell CVS not to download empty directories.
And ensure everyone checking out the repository uses the -P flag as well. I’d say it’s a pretty major limitation when a client-side hack is required to work around the server’s inability to remove directories. And did I mention what a hassle it is to move files around inside the repository while retaining versioning information.
CVS works, it is tested and it is time proven.
Yes, but its design oversights are enough to drive a man mad.
My absolute favorite VCS is Perforce. For personal use it is free too, with limitations on the number of clients only. Deleting directories, renaming files and all are doable in such a way that the versioning history is preserved. This is really vital.
It is …
1) java based
2) part of eclipse
2) DB based (posttgres)
3) already self hosted (used to maintain stellation source code).
http://stellation.eclipse.org
Check out this one http://www.ngsource.com/SourceControlBenefits.htm
Really cool. I am vary happy with it.
If you’re using Visual Studio (.NET), have a look at AnkhSVN
http://ankhsvn.tigris.org/
Integrates with VS and is pretty nice!
Darcs was also omitted from the list:
http://abridgegame.org/darcs/
to keep track of all these
>If you’re using Visual Studio (.NET), have a look at AnkhSVN
http://ankhsvn.tigris.org/
Integrates with VS and is pretty nice!
Can the subversion server run on Windows?
I believe the author did have some discussions on the darcs-users mailing list; it’s just that he hasn’t updated the webpage yet (the Better SCM Initiative site has been around for a while, back while I was still using CVS & Aegis; I guess Eugenia just found out about it recently).
See the darcs-users mailing list for details.
I am a happy Subversion user too. It beats CVS anytime for all my needs.
However, we really need to move on from a centralized model (1 repository per project) like CVS/Subversion to a distributed model (1 repository per developer) like Arch/Darcs/monotone. Centralized repository is a hassle for open souce development model. Imagine Linux being developed by CVS/Subversion instead of Bitkeeper; I think Linux will still be in 2.2.x releases
> Can the subversion server run on Windows?
The Subversion server (either the Apache2 WebDAV-based module or the custom server) can run on Win32 very well, without a UNIX emulation layer.
> However, we really need to move on from a
> centralized model (1 repository per project)
> like CVS/Subversion to a distributed model (1
> repository per developer) like
> Arch/Darcs/monotone.
> Centralized repository is a hassle for
> open souce development model. Imagine Linux being
> developed by CVS/Subversion instead of Bitkeeper; I
> think Linux will still be in 2.2.x releases
Actually, Linus Torvalds started using BitKeeper in the middle of the Linux 2.5.x or 2.4.x tree, so it would have been at least in 2.4.x right now. (;-)) Up to then he was using tarballs and patches. Other than that, the reason Linux requires a distributed model is because Linus Torvalds is a centralist, and wouldn’t let anyone else besides himself apply patches to the central Linux repository. Other projects do allow more than one developer to have a commit access, and so they scale much better, without needing to use a distributed VCS. Take KDE or GNOME for an extreme example – they give CVS access to the most small-time contributor, and as such they advance by leaps and bounds.
See also Greg Hudson’s analysis of it:
http://web.mit.edu/ghudson/thoughts/bitkeeper.whynot
Other than that, you are right that having a distributed version control system offers some great advantages for all kinds of development. Subversion has some tools that can propagate changesets from repository to repository, but so far without conflict mergining. Better distributed operation for Subversion is planned to be added at a certain point in the future. (it will be faster if you contribute!<tm>).
Dunno, the article is very interesting and points out all the weak spots of cvs, but imvho fails to stress the main strenght of cvs: its widespread acceptance.
We’ve set up a couple of cvs repositories at work (jailed, with ssh access, are the other systems so easy to jail(8)?), and used cvs simply because all the IDEs already in use supports it (eclipse for example integrates it very nicely).
If you can start from scratch it may be possible to use another vcs equally nicely, but the seamless integration into existing realities is a *very* strong point imho.
I’m still not sure why everyone’s raving about Subversion. The last time I looked, they were still *designing* the API!! Or were they just ‘redesigning’?
And why the absolute dependance on WebDAV for network repositories? To be fair, it’s been 2-3 months since I last looked at Subversion, and I know it’s still in a state of flux, but my two current favourites are Arch/TLA (http://regexps.srparish.net/www) and Monotone (http://www.venge.net/monotone). The design of TLA is very, very good, and flexible — use WebDAV, FTP, SFTP for connecting to the repository. My only complaint is if your tla binary can’t find a GNU Tar, Sed, Diff or Patch, then things can get a wee bit hairy and unpredictable. Monotone’s getting better and better, and uses the Boost libraries and SQLite for doing all the things that TLA uses Tar/Diff/etc for, but it’s still going through changes (some API, it appears) and the user-commands are a bit too minimal for serious use, at the moment — though it’s damned close, and the completely disconnected system for repositories is fantastic! Though I think as soon as Tags get implemented properly, it’ll take away a lot of the pain of forcing users to use SHA hashes instead of Version numbers.
Subversion is in beta, so they are not redesigning the API. And there is no “absolute dependence” on WebDAV. You have the option of using WebDAV/Apache or the standalone server, which uses its own protocol.
The standalone server is easier to set up, but Apache/WebDAV has many advantages. For example, you can have an autoversioning folder that you mount from windows as a web folder. Then, whenever you create/edit/move files in that folder, it automatically versions everything.
can someone point me in the right direction since I can’t find the subversion server download for windows on their website ( http://subversion.tigris.org/ ). Does any have the URL for Subversion on Windows?
Thanks in advance
There is no special server download. The win32 download contains all that you need for a client or server. You can find the latest version (0.37, the beta) in a friendly installer here:
http://subversion.tigris.org/files/documents/15/9919/svn-0.37.0-set…
I cover some of my experiences using both Perforce and CVS (nickel tour: Perforce is good. CVS is bad. I am opinionated) on my weblog, here:
http://peterb.telerama.com/weblog/archives/000010.html
Comments are welcome.