“Subversion is an open source revision control system, similar in purpose to the well-known, widely deployed, and aging CVS. It is designed to provide state-of-the-art versioning, built from modern technologies. Subversion is still in development and has not reached version 1.0 yet. However, it’s pretty stable and you can use it right now.” Read the article at OnLamp.
Subversion is flexible enough (moreso than CVS) to the point where I’ve been able to put all my documents under version control. I run a nice big subversion server that does double duty as a network firewall. The peace of mind is incredible. I never have to worry about accidentally losing an older draft of a paper, I can access my documents from anywhere in the world, and I don’t have to worry about backing up any machine but the server. Subversion is similar enough to CVS in many ways that it’s not hard to get used to if you know CVS already, but significantly more powerful because it handles binary files well, handles renaming files correctly, and can tag versioned file with metadata.
I converted all my programming projects to Subversion back at v0.14.2. It hasn’t crashed or b0rked any of my files yet, and it’s light-years ahead of CVS in terms of flexibility. Plus it’s library-centric design and SWIG bindings mean you can easily write a few quick scripts to integrate it with project management or bug tracking software.
I can believe that it is better than CVS, but is it as good as Perforce?
Please do not answer if you just want to start a “vi vs emacs” style of fight. I am asking this only for people who have used both and they can really compare SVN and Perforce.
Linus will dump bitkeeper for it.as he had said early on.
While elements of FreeVCS are geared towards Delphi developers, it’s very useful for VC’ing other large projects (documents, web dev, other types of code, etc.).
I’ve only recently began using it though -In fact I’m still configuring some of the more minor details/settings, and if Subversion’s potentially more suited to my specific needs (ie, web application development), it might be worth my checking it out.
Has anyone used both, and if so, what was your impressions of how they compare?
Subversion and BitKeeper are actually two different beasts entirely. Subversion is a refinement of the CVS model, and is designed for closely cooperating users and the traditional tightly organized development model. BitKeeper on the other hand, is designed from ground up for distributed development, with multiple people maintaining independent branchs, applying changesets between them without strict order. Arch is more akin to what BitKeeper does, but is nowhere near as mature and powerful.
Subversion stores all the metadata necessary for distributed repositories and changeset management, but they are not a priority for version 1.0. The Subversion developers want to get a stable, reliable product out the door that CVS users can get comfortable with right away, and increase their productivity by not having to jump through CVS’s various hoops.
After 1.0 is out the door, distributed features can be added. Check the Subversion mailing list archives for more.
Thanks for the link to this article. Just today I was thinking about finally getting my act together and putting my stuff under version control.
Btw, the CM guy at work tells me that Perforce is *very* fast. Much faster than PVCS (which we’re currently using). I asked, but he’s never used CVS or subversion.
>Linus will dump bitkeeper for it.as he had said early on
Won’t happen trust me. Linux has said he utterly hates such systems which base themselves on “The One True Repository”
Bitkeeper is distributed, allowing several people to work with
their own tree, but still sync whith eachother. That was one of the main reason he chosed Bitkeeper. No other version control system works this way…
Perforce is not free as in beer or free as in speech. Sorry.
“Branches are mainly useful when a team of developers have commit access to a same repository. If a long, experimental development has to be made, it’s better to create a branch, make the changes in it, and reintegrate them into the trunk when the development is finished. This avoids interferences. Subversion provides a mechanism (the svn merge command) to report the changes made in one branch into another. Branches may not be very useful to you if you’re the only Subversion user on your system, and that’s why I won’t elaborate on this subject. However, the Subversion developers recommend to create two subdirectories, branches/ and tags/, along the trunk/, to store branches and tags. (This is how the Subversion repository is organized.)”
That, to me, doesn’t sound too dissimilar to what BitKeeper offers. It will be interesting to see how this matures and how it is discussed in the LKCD list.
Linux has said he utterly hates such systems which base themselves on “The One True Repository”
Bitkeeper is distributed, allowing several people to work with
their own tree, but still sync whith eachother. That was one of the main reason he chosed Bitkeeper. No other version control system works this way…
I believe that BitKeeper is derived from Sun’s TeamWare (built upon SCCS), which works with local duplicate repositories. In fact, I think I read somewhere that the fellow who started BitMover originally worked on TeamWare.
Re: Charlie
Branchs in Subversion and BitKeeper are totally different. In Subversion, branches stay in one repository. Despite the fact that the code is logically seperated, it’s still physically organized in one place. BitKeeper allows code to be physically seperated. It allows Linus to keep an “official” BK repository while the other kernel devs keep their own repositories. Occasionally, someone will pull a set of changes out of their own repository and send it to Linus for incorperation into the main one, but at no point are the physical repositories ever tied together. Lots of version control systems offer branches (like CVS), but so far only BitKeeper, and to some extent Arch, offer totally distributed development.
Re: JohnG
It’s true that Larry M worked on TeamWare, and a lot of his ideas come from that. But BitKeeper is only inspired by TeamWare, not derived from it. It takes some of the nice elements of teamware, while being designed from the ground up for distributed development.
> Perforce is not free as in beer or free as in speech.
Who the f*ck cares? IF it does the job better, it does the job better. End of story.
Who the f*ck cares?
There are legions of us.
Perforce rocks, but it is expensive. At $700 a seat you really need to need it. Subversion seems to have a way to go, but already it is better than CVS. Hopefully within a year subversion will be as good as Perforce.