Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Software IT Technology

Subversion 1.0 Released 587

Phil John writes "Subversion 1.0 has finally been released. The people who maintain CVS have given us a viable replacement for our de-facto (and aged) versioning system. If you're new to Subversion its feature list looks like fixes for everything that is wrong in CVS, renaming, directory structure and metadata version tracking, file deletion, proper management of binary files and it's pretty portable to boot." According to the download page, binaries may take a few days to appear.
This discussion has been archived. No new comments can be posted.

Subversion 1.0 Released

Comments Filter:
  • by Anonymous Coward on Sunday February 22, 2004 @10:37PM (#8359439)
    According to the download page, binaries may take a few days to appear.

    What's so good about a version control system that takes days for binaries to appear? That's a pretty big bug to work out. (fp)
    • by Dog and Pony ( 521538 ) on Sunday February 22, 2004 @11:14PM (#8359688)
      ... try having a sysadmin that prefers debian and see how long you have to wait. Sigh. I do like subversion lots though! :)
    • by ehack ( 115197 ) on Monday February 23, 2004 @06:58AM (#8361106) Journal
      The source for Subversion is in a Subversion archive, so the usual supect who build binaries cannot check it out because they themselves haven't built Subversion yet :)
  • sf.net (Score:5, Interesting)

    by RoadkillBunny ( 662203 ) <roadkillbunny@msn.com> on Sunday February 22, 2004 @10:44PM (#8359492)
    Is sourceforge gonna offer this service in their project hosting instead of CVS now? Or will they allow both?
    • Re:sf.net (Score:4, Informative)

      by jdavidb ( 449077 ) on Monday February 23, 2004 @08:51AM (#8361551) Homepage Journal

      I seem to recall that several years back (2001) sourceforge did some tests for subversion where they imported all of their repositories into a subversion repository as a stress test. (Yes, subversion has been working as a minimally functional VCS since then ... since then they've been adding features, refining protocols, and most importantly making it more robust.) I'm pretty certain sourceforge will want to be moving to subversion, or at least making it an option.

  • Works well (Score:5, Informative)

    by Anonymous Coward on Sunday February 22, 2004 @10:46PM (#8359505)
    I've been using earlier builds for my own codebase stuff, and while there are a few new concepts to get your head around, overall the system works very well. I haven't had any problems with corruption or loss, and everything I've needed to do has worked perfectly.

    My congrats to the dev team for a good solid product.

    For those looking to use it, befor eyou do, work out your versioned directory structure, it *is* kinda important (although not critical, you can move things around afterwards). For example, I have:

    trunk/(project name)
    tag/(project name)/(tag)
    branch/(project name)/(branch name)

    as my general layout. Other people may have other recommendations, but tags and branches etc are no longer this explicit thing, its just about where you put them in the "filesystem".
  • by bcrowell ( 177657 ) on Sunday February 22, 2004 @10:47PM (#8359508) Homepage
    I don't think I'm going to try this version. I think I'll wait until they get to Superversion 1.0. Or maybe Superversion Platinum/Pro++ 1.0.
  • Filesystem driver? (Score:5, Interesting)

    by sploxx ( 622853 ) on Sunday February 22, 2004 @10:48PM (#8359522)
    Is there a filesystem that uses subversion as it's underlying "device"? For linux?
    Some time ago I worked with Rational ClearCase and the filesystem integration was really nice.
    • by Anonymous Coward on Sunday February 22, 2004 @10:56PM (#8359580)
      see Katie [netcraft.com.au]

      It's a revision control system masquerading as an NFS filesystem/server. Pretty damn cool. It's 99% written in Perl.
      • by lobsterGun ( 415085 ) on Monday February 23, 2004 @08:21AM (#8361411)
        Before you get too excited here's a note from the Katie web page:


        Katie is currently in a rather pre-alpha state. The functionality that has been implemented so far (checkin, checkout, labels, branches, dynamic views, configuration specifications, comments) works very nicely, but there is much still to do. See doc/TODO in the distribution for details of what needs to be done, and doc/QUICKSTART for an introduction to what is currently working.
    • by mohaine ( 62567 ) on Sunday February 22, 2004 @11:08PM (#8359649) Homepage
      Wow, there is a first for everything. The one statement I would have bet large sums of money that I would never hear is that ClearCase's filesystem integration is really nice.
  • by Anonymous Coward on Sunday February 22, 2004 @10:48PM (#8359528)
    Here's a comparison with 10 popular replacements

    http://better-scm.berlios.de/comparison/comparison .html [berlios.de]
  • FreeBSD (Score:5, Interesting)

    by Anonymovs Coward ( 724746 ) on Sunday February 22, 2004 @10:49PM (#8359533)
    Some time ago Doug Rabson posted a wishlist [freebsd.org] of features that would be needed to move FreeBSD to subversion (from CVS). Any idea on progress on these features? The site seems to be slashdotted.
    • Re:FreeBSD (Score:5, Informative)

      by cduffy ( 652 ) <charles+slashdot@dyfis.net> on Monday February 23, 2004 @12:43AM (#8360036)
      Heh -- having been on the Arch list for a while, I distinctly recall watching the feature requests from Linux kernel developers ("we need $THIS before we can migrate away from BitKeeper" sort of thing).

      Their objections (other than performance, which has been dramatically improved lately) have been largely silly things, not related to the Arch core itself (which is most excellently designed; thanks Tom!), but rather mostly UI-type issues ("we want built-in a graphical 3-way merge tool!" type items).

      That's the case for Arch, anyhow. As for the post you just mentioned, its objections to SVN happen to be things that either don't hinder Arch at all or should be non-issues altogether (ie. better solution available):

      1. Equivalent to cvsup. Arch has this functionality built in, implicit in its mirroring and distributed support features.

      2. Support for (user-supplied) keywords. The general consensus on the Arch list is that it's a bad idea for any revision control system to support this "feature" at all, and that there are better ways to do anything one could want them for.

      3. Converting the repository -- cscvs, a tool I help to maintain, does just that.
      • Re:FreeBSD (Score:4, Interesting)

        by Samrobb ( 12731 ) on Monday February 23, 2004 @02:56AM (#8360537) Journal
        2. Support for (user-supplied) keywords. The general consensus on the Arch list is that it's a bad idea for any revision control system to support this "feature" at all, and that there are better ways to do anything one could want them for.

        Out of curiosity, could you repeat some of the reasons for opposing this? In this particular case, it seems that it's viewed as a fairly significant stumbling block by a large and influential potential adopter (FreeBSD).

        I've never worked in an environment where we specifically needed this capability, but my general experience is that it's a poor choice to sacrifice flexibility unless there's a strong technical reason for doing so.

  • by Catharsis ( 246331 ) on Sunday February 22, 2004 @10:51PM (#8359552) Homepage
    This news post really does nothing to explain why Subversion is so much better than CVS.

    Subversion is, in essence, a reimplementation of CVS without the limitations of CVS.

    It has basically the same functionality as CVS, but is based on a BerkeleyDB backend instead of a simple filesystem approach like CVS. This means, among many other things, that you can move files from directory to directory and rename them without orphaning them.

    This is, IMHO, reason enough to switch. (And was reason enough to switch for me a while ago.)

    SVN can do binary-file diffs, tracks submissions of multiple files as part of the same revision, and if memory serves me correctly, does O(1) branching and tagging.

    For those of you who, like me, use TortoiseCVS to do version control in windows, there is TortoiseSVN which works like a charm and provides all the functionality you're using in TortoiseCVS with some nice extras.

    I could go on at great length, but the Subversion team can probably do a much better job explaining this than I can, so go to their web site instead.

    Quite honestly, I think that Subversion is so much superior to CVS that it will completely replace it, and I haven't got anything to do with the project. Once I switched over, I never looked back.

    1.0 release means that SVN now supports everything that CVS does, with a few extras. From here, they are planning to work on new features.

    I've heard some bellyaching over the license already (boo hoo). BSD code is Gratis and Libre, and if the Subversion team isn't losing sleep over MicroSomeone ha>oring their project into one of their own, I won't either.

    Please don't turn this discussion into another license vs. license argument, and have a look at the project for its real merit.

    • by cduffy ( 652 ) <charles+slashdot@dyfis.net> on Monday February 23, 2004 @01:03AM (#8360112)
      It has basically the same functionality as CVS, but is based on a BerkeleyDB backend instead of a simple filesystem approach like CVS. This means, among many other things, that you can move files from directory to directory and rename them without orphaning them.

      Bogus. GNU Arch [gnuarch.org] is based on a filesystem-based repository as well, but can revision file moves, permissions, symlinks, and so forth.

      Further, even if the Arch tools were to disappear tomorrow, I could still retrieve the contents of my files using tar, patch and similar tools -- something I can't do with a tool that backends into BerkeleyDB. (Yes, call me paranoid -- but I don't trust my source to big binary blobs managed by the same library that's destroyed my RPM database so many times). The repository format is write-once, so the files in the repository, once created, are never overwritten or modified as new history is added (unlike CVS's ,v files or Subversion's database backend).

      There are other reasons to prefer Arch as well, including distributed repository support, history-sensitive merge operators, and arguably superior core design.

      Yes, I'm glad to look at SVN on its merits alone -- and while it's a huge improvement over CVS, I still find it lacking compared to the other modern revision control systems out there.
      • by Eric Smith ( 4379 ) * on Monday February 23, 2004 @03:10AM (#8360573) Homepage Journal
        Further, even if the Arch tools were to disappear tomorrow, I could still retrieve the contents of my files using tar, patch and similar tools -- something I can't do with a tool that backends into BerkeleyDB.
        I was concerned about that when I started using Subversion. They supply a command, "svn dump", that outputs a flat text file version of a repository in an easily parsed format. I have a cron job to do this periodically for backup. If a was more paranoid, I'd set it up to do it after every commit.

        However, I've been using Subversion for quite a while, and it has never yet lost any of my data.

        but I don't trust my source to big binary blobs managed by the same library that's destroyed my RPM database so many times).
        I have had occasional RPM database problems, but as far as I can tell they have been due to RPM problems, not due to Berkeley DB problems. In my experience Berkeley DB is fairly robust.

        In principle, there is no reason why Subversion can't use your favorite relational database as the back end. The Subversion developers chose Berkeley DB as the first back end implementation, but there may be others in the future.

        arguably superior core design
        That's rather vague. What's better about Arch's core design? (I'm not trying to knock Arch; I just don't know much about it.)
  • more information (Score:5, Informative)

    by j1m+5n0w ( 749199 ) on Sunday February 22, 2004 @10:51PM (#8359553) Homepage Journal
    The main site seems to be slashdotted. There appears to be an online book on the subject here [red-bean.com]

    Version Control with Subversion
    Draft Revision 8770
    Ben Collins-Sussman
    Brian W. Fitzpatrick
    C. Michael Pilato

    -jim
  • by mattgreen ( 701203 ) on Sunday February 22, 2004 @11:12PM (#8359675)
    SourceForge said in a FAQ (IIRC of course) that they are waiting until a production version of SVN comes out. Now, when will they implement it? I'm waiting pretty anxiously.
  • by Phil John ( 576633 ) <phil@NOSpAM.webstarsltd.com> on Sunday February 22, 2004 @11:28PM (#8359751)
    ...you could do a lot worse than TortoiseSVN (also on tigris.org). It's an explorer shell plugin with icon overlays. Open up windows explorer, right click files to comit and whoosh...it's done.

    Also has a visual diff and all sorts of other goodies in it too. There's also a (somewhat unrelated) project of the same ilk for CVS called, unsurprisingly, TortoiseCVS (different developers IIRC, same idea though, hence the similar name).

    I've been using Subversion for the last 6 months and TortoiseSVN for the last 5, never had any data corruption or borked repositories, it Just Works(tm).

    What I like is that the developers started eating their own dogfood fairly early on and have been self hosting for a fair while now, so that shows you how much faith they have in the system.
    • by pbur ( 88030 ) on Monday February 23, 2004 @08:56AM (#8361570)
      There's also a (somewhat unrelated) project of the same ilk for CVS called, unsurprisingly, TortoiseCVS (different developers IIRC, same idea though, hence the similar name).

      Somewhat unrelated? TortoiseSVN is a straight mod of the TortoiseCVS codebase made to work with Subversion. Yes it's different developers, but the TortoiseSVN guys got a giant head start on TortoiseSVN by using the code from TortoiseCVS. It's mentioned on both sites. I use them both, they are amazing tools.
  • by joey ( 315 ) <joey@kitenet.net> on Sunday February 22, 2004 @11:28PM (#8359753) Homepage
    As I type this, version 1.0 of subversion has not been tagged [collab.net] yet. I have not seen an announcement about 1.0 today, and the announcements page lists 0.37.0 as the last release.

    I think slashdot may have jumped the gun here, and I hope that the slashdotting of their web server is not going to cause them problems with actually getting 1.0 out the door, which is supposed to happen sometime Monday (timezone unknown).

  • by Animats ( 122034 ) on Sunday February 22, 2004 @11:30PM (#8359764) Homepage
    Apparently Subversion 1.0 doesn't support "sharing", where the same file appears in more than one place in the source tree. That's a lack. Microsoft SourceSafe does that, and it helps avoid those annoying situations that result in long include paths.
  • FAQ (Score:5, Informative)

    by Anonymous Coward on Sunday February 22, 2004 @11:33PM (#8359777)
    1. Subversion does NOT require Apache. It can use either Apache OR svnserve as its network server.

    2. Want decentralized subversion? Check out the svk project at http://svk.elixus.org/

    3. Best benefits over CVS? Well, its basically a 4-year redesign/rewrite/replacement of cvs by people very familiar with cvs (ie wrote the book on cvs and runs a company specializing in cvs services).

    a. Cheap copies (constant time, store diffs only so branch often if you want even on very large projects).

    b. Directories and metadata are versioned too.

    c. You can move files and directories without losing history.

    d. Atomic commits! Issue a bunch of "add" commands, then a "commit". The whole thing rolls back if any of it fails and the revision is per commit (not file).

    e. Other benefits may be more important to you than these (but these were enough for me to switch from cvs to svn).

    4. Is svn 1.0 ready for prime-time? Subversion project has been hosting itself for almost 2 years now and they never lost any code. For the ultra-paranoid, you can configure it to keep all bsdb logs so you can roll back every transaction since the beginning of your repository creation (but that would be silly).

    Don't forget to see:
    http://www.red-bean.com/sussman/svn-anti-fud .html

    And irc: #svn on freenode

  • by cheesedog ( 603990 ) on Monday February 23, 2004 @12:07AM (#8359915)
    Anyone know if there is a way to use subversion for automatic canonization of code style? For example, is there a way to force the server to apply some astyle invocation via subversions hooks on any commit, and for the subversion client to apply some symmetric astyle invocation (to get the code back to the user's preferred format) upon update/checkout? Of course, code would also have to pass through the filter to check for modification, etc....

    And yes, I know that some of you think this is a terrible, horrible idea and that my keyboard should be confiscated for even suggesting it. But this ability is on my "holy grail" list for version control systems, and I won't rest till I find it!

    • by Phil John ( 576633 ) <phil@NOSpAM.webstarsltd.com> on Monday February 23, 2004 @12:25AM (#8359975)
      ...it's meant as a general file versioning system. However, there are indeed various hooks so in theory you could set something like this up. Have a look at the subversion book (linked elsewhere in the comments).
    • by kaisyain ( 15013 ) on Monday February 23, 2004 @12:33AM (#8360001)
      I haven't checked recently but it is unlikely. When I tried to convince the subversion devs a few years back that such functionality would be a good thing (i.e. offer the choice, let users weight the risks and benefits and make their own decisions) the idea was pretty thorougly shot down by all. I doubt anything has changed their minds in the time since.

      Personally I don't see the difference between this kind of source code transformation and the more accepted RCS keyword kind. Except this has the immediately obvious benefit of obviating all of the stupid source code style issues known to mankind and letting people use whatever they prefer transparently.
    • by feronti ( 413011 ) <gsymons@gscon s u l t i n g . biz> on Monday February 23, 2004 @12:43AM (#8360035)

      You have 3 different places to hook into the commit cycle in version 1.0:

      • startcommit
        Before the transaction begins, you can prequalify the user for commit privs
      • pre-commit
        After the transaction tree has been completely built, but before it's actually committed to the repository
      • post-commit
        After the entire commit cycle is completed
      start-commit is passed the repository and the user, pre-commit is passed the repository and the name of the transaction (which can be examined with svnlook), and post-commit is passed the repository and the revision number. If either start-commit or pre-commit fail, the commit is rolled back; post-commit exit status is ignored.

      This could be used to canonize it coming in... it would be up to the user to reformat it coming out if desired... but everything would then get flagged as locally modified... though the user could always recanonize the code before committing... which defeats your goal of automating it all:)

      So, the grail is closer, but as always, just out of reach.

    • by fucksl4shd0t ( 630000 ) on Monday February 23, 2004 @01:05AM (#8360118) Homepage Journal

      Anyone know if there is a way to use subversion for automatic canonization of code style?

      Yeah, host a python [python.org] repository with it.

  • Or am I wrong? Yes, I know VS is an unholy horror, but some of us are stuck with it for work. I use Jalindi igloo to interface with CVS, and would likely use subversion (heard nothing but good things about it) if I had 2 things:

    1) the VS.NET source control plugin
    2) a good way to "upgrade" an old CVS repository

    I'm guessing #2 is supported, but #1?
  • by brettw ( 27391 ) on Monday February 23, 2004 @12:48AM (#8360057)
    I've been following subversion for 2 years and waiting for it to be ready.

    Last build we tried was a couple of months ago.

    Try compiling it on different architectures (ours are i686-linux and hppa2.0-hpux11.00), mixing slight version differences, mixing which server you use (svn, http).

    Then say hello to _constant_ intervention by someone who has admin privileges to recover your hosed repository.

    I hate to say it, but now of course with 1.0 we'll try again. But I wouldn've thought they were a long way off based on our problems.

    And this is with just 3 people using it on a test project? CVS has bugged me for years, but it can handle the basics without error.

    I'm willing to admit that something we did could've caused all our problems (funny compiler flag or version, wrong switch enabled), but I can't afford the time spent trying to get a superior, but buggy, tool to just do the basics, even if the root cause is in some arcane step in the build process (which is truly hideous).

    I wish them luck, but honestly I've never been able to figure out how all these happy subversion users ever got it to work.

    There's still time though to pull the plug on our imminent order of Bitkeeper if by some miracle things have improved a lot very quickly.
    • by Anonymous Coward on Monday February 23, 2004 @01:48AM (#8360306)
      I thought I had the same problem with subversion -- Until I discovered it was my fault.

      I had given local accounts to about 5 developers on my machine. They all used svn+ssh to access the repository. I had created a 'svn' user and group, put the repository in /home/svn, and added everyone who needed access to the svn group.

      This is not the way to do it.

      Berkely DB is a transactional database; it will not necessarily work properly if multiple processes are accessing it at the same time. I ended up having to do a 'svnadmin recover /home/svn' every few days which drove me insane.

      The solution is to drop svn+ssh, and run svnserve. That's what I did. Of course, apache2 can be run also, but that was too much for my needs.

      For more details, check out the subversion book, chapter 6.
      http://svnbook.red-bean.com/html-chunk/ch06s03 .htm l#svn-ch-6-sidebar-1

      One of the developers took me through a more detailed explanation of why it was a bad idea to use svn+ssh with multiple developers. Suffice to say, since I've moved to svnserve, I have had absolutely not a single problem.
  • by slipsuss ( 36760 ) <sussman@@@red-bean...com> on Monday February 23, 2004 @12:55AM (#8360081) Homepage
    We haven't announced 1.0 just yet; we're going to do it sometime on Monday the 23rd. The Subversion team prepped the website and rolled a 'beta' 1.0 tarball over the weekend in preparation for Monday. We wanted to make sure there were no embarrassing bugs in the tarball itself (i.e. no "brown bag" releases due to a bad libtool or something!)

    Thanks for all the nice comments. Stay tuned for the official announcement.
  • by Anonymous Coward on Monday February 23, 2004 @01:07AM (#8360120)
    I can't be the only one that is unimpressed by Subversion.. and a little disappointed that this is the best the open source community can come up with.

    When I first started reading about Subversion (a few YEARS ago), I was ready to be blown away. I thought it would be fast and powerful, yet light and minimal like CVS. And I expected features like distributed repositories and changeset management built in from the start.

    But after using it for a while (and I have been using it for a couple major projects) and studying the design, I don't like it much.

    One thing that's great: they stripped down the CVS interface, and removed all the confusing and conflicting commands and flags. svn now has a nice orthogonal command set, but still easy to use for a CVS old-timer.

    But under the surface.. WOW a berkeley DB? Implementing a *versioned filesystem*? Talk about over-engineering!!

    First of all, a versioned filesystem is not the right solution for version control. Version control is about *changesets*, not file snapshots. Subversion is concentrating on the nodes of the change graph, not the edges. Their solution is extremely "heavy". Changesets cannot be added to this model. It's possible to *generate* changesets from various snapshots of the tree (i.e., which sets of revision deltas make up a particular changeset), but that's also possible with CVS and a horrible hack.

    A better solution would be designed around changeset management from step 1. And it wouldn't take X years to finish.

    Second, the Berkeley DB is a key/value database. What the heck does that have to do with versioned trees?

    Berkelely DB installations are difficult to back up, they can't be placed on network drives, they have locking issues, they create journals and logfiles and all kinds of junk. To back up our svn repositories, I'm just dumping the whole damn thing every night into a massive text file. Yeesh. (Actually it's not a text file, the binary files are dumped right along with the text, so it's actually a binary format).

    Want another example of using berk DB where it shouldn't be used? The RPM package manager. A huge pain in the ass, but that's a rant for another day.

    And yeah the WebDAV thing (which was installed by default when I installed svn from FreeBSD ports) sucks too. Maybe when I have some time I'll figure out the non-Apache dedicated server. But the WebDAV server should just be dropped completely, imo, it seems to just piss people off.

    The Subversion folks should've been much more minimalist in their design. They should've aimed for the *simplest* design that could meet the requirements.

    I've taken a look at Arch, and it has the opposite problem of subversion: damn nice internal design, but crappy interface (I recall the help text that listed commands was almost 200 lines long)!

    Internally arch is great. It doesn't need any fancy database, all you need is a filesystem with atomic renames and other Unix-y features. It handles changesets, it handles distributed repositories, it handles "checkpointing" complete copies of the source code (so you don't have to spend a lot of time applying deltas to get to a specific revision)... it does it all once you figure it out.

    The subversion folks should've taken Arch, cleaned up the interface, come up with some compatibility code for non-Unix platforms, and called it a day.

    Ahh, but that would've been too easy.
    • by myg ( 705374 ) on Monday February 23, 2004 @02:56AM (#8360538)
      First off I use Subversion on a large, non-open source project. It works great; my server is a crappy PowerMac and it still handles commits from the staff with no problems as well as checkouts to the various build machines here.

      Before we migrated to Subversion we were using CVS. In choosing a replacement for CVSs' limitations we first evaluated arch.

      In our opinion arch is junk. It works only on UNIX like systems (we have lots of systems that are not UNIX-like here, and we do use Win32 for some stuff).

      Converting CVS with history looked to be impossible and we found arch very annoying to use.

      The distributed tree model is also another problem. I'm sure that for Linux kernel development, arch makes sense. For a commercial product we do not want multiple trees. We want one consistent tree so when we go to a customer site we don't have to wonder why a circuit is malfunctioning because we didn't sync up with Jack's tree or whatever. We rejected BitKeeper on the same grounds; we weren't so much against paying but wanted something with the right feature set.

      ClearCase wasn't cross-platform enough and was really more expensive than we could afford and MetaCVS seemed sluggish.

      As a matter of personal opinion (mod me down if you want); we felt that (in the lab) arch felt like a toy and Subversion felt like a polished product.

      • by edmudama ( 155475 ) on Monday February 23, 2004 @03:28AM (#8360615)

        "The distributed tree model is also another problem. I'm sure that for Linux kernel development, arch makes sense. For a commercial product we do not want multiple trees. We want one consistent tree so when we go to a customer site we don't have to wonder why a circuit is malfunctioning because we didn't sync up with Jack's tree or whatever. We rejected BitKeeper on the same grounds; we weren't so much against paying but wanted something with the right feature set."

        Just for the record, just because BitKeeper supports (and works great) in a fully distributed environment, doesn't mean you need to use it that way. Every developer can simply clone, then push each change back to the parent, and it would work like a centralized server.

        If your developer "forgets" to push, that's no different in a distributed than a centralized system... once pushed, everyone has access to it.

        There are other advantages to distributed operation too, mostly in failure tolerance and disconnected operation... BitKeeper is the only tool out there I am aware of that lets you work completely via floppy disks, without losing any functionality (it maintains its checksummed changeset model)

        --eric

    • by kahei ( 466208 ) on Monday February 23, 2004 @06:02AM (#8360997) Homepage

      What you say about subversion may be true (it works okay for me but it could certainly do with a bit more power in places).

      However, to say that arch is _better_ because it relies on Unix to the extent of being uncompilable on Windows (probably works in cygwin, but...) is bizarre. Arch suffers from the common GNU problem of assuming that a Unix system with a Unixy filesystem is the only environment worth paying attention to, and despite what Richard Stallman might think, that _is_ a problem.

      Subversion: a cross-platform library for which many tools can be (and have been) made for many environments.

      Arch: a Monolithic Unix program. Attempts to port and to add tools are still ongoing.

      Arch seems not only less useful but also depressingly backward-looking in philosophy.

  • VERY easy to convert (Score:5, Informative)

    by noda132 ( 531521 ) on Monday February 23, 2004 @01:59AM (#8360358) Homepage

    If anybody's wondering about how long it takes to switch from CVS: it's about half an hour before you see it start to pay off.

    1. install (apt-get install subversion)
    2. Use svnadmin to create a new repository
    3. Use cvs2svn (apt-get install subversion-tools) to migrate the old (CVS) repository to the new (SVN) one. It'll keep all your revisions, tags, etc.
    4. svn co file:///path/to/repos/trunk repos

    And if you're used to using CVS through ssh, it's even easier with SVN: svn co svn+ssh:///host/path/to/repos/trunk repos

    All that's left to do is get used to the different keys. Oh, and instead of doing a 'svn up' before committing, use 'svn status' -- it actually does something useful.

    I don't see a compelling reason not to switch.

  • by kfogel ( 1041 ) on Monday February 23, 2004 @02:36AM (#8360482) Homepage
    Not sure why the original poster said Subversion came from "the people who maintain CVS". They are two separate developer groups -- as far as I know there is no overlap between the currently active developers of CVS and Subversion.

    Also, he was early :-). Subversion 1.0 wasn't actually out yet when he posted. We had released a beta prerelease, and were careful to say that 1.0 itself wouldn't be out till Monday. Oh well, win some, lose some.

    Anyway, it's almost Monday now, so check back soon at http://subversion.tigris.org/ [tigris.org].
  • by thelenm ( 213782 ) <mthelen@gmai l . com> on Monday February 23, 2004 @02:38AM (#8360492) Homepage Journal
    I had such a fun time the other day installing BerkeleyDB 4.2, Apache 2.0.48, and Subversion 0.37 from source. It just took me way too long to figure out the right configuration options to get the Subversion server installed correctly, so here are my notes. They're mostly stolen from somewhere on the Web (don't remember where), modified a bit with things I learned along the way. If this is useful to you, great.

    1) Download, build, and install Berkeley 4.2.52 with the default location; this is as simple as:

    $ cd db-4.2.52/build_unix
    $ ../dist/configure
    $ make
    $ su
    # make install

    make sure LD_LIBRARY_PATH includes /usr/local/BerkeleyDB.4.2

    2) Download Apache 2.0.48 tarball and build it with the defaults:

    $ cd httpd-2.0.48
    $ ./configure --enable-dav=static --enable-so=static --with-dbm=db4 --with-berkeley-db=/usr/local/BerkeleyDB.4.2
    $ make
    $ su
    # make install

    3) Download a Subversion tarball (e.g. subversion-0.37.0.tar.gz) since that comes fully formed:

    $ cd subversion-0.37.0
    $ ./configure --with-berkeley-db=/usr/local/BerkeleyDB.4.2
    $ make
    $ su
    # make install

    And then follow the directions for configuring Apache, which could be as simple as adding the following:

    <Location /repos>
    DAV svn
    SVNPath /absolute/path/to/repository
    </Location>
  • success story (Score:5, Interesting)

    by Anonymous Coward on Monday February 23, 2004 @02:49AM (#8360514)
    We replaced 2 huge SourceSafe and 8-10 enourmous CVS repositories with Subversion.

    We kept dual copies for about two weeks before feeling concident (only two projects was actully active, but with > 140 developers).

    This was in the 0.27 version and haven't had a single glitch!!! And 1.0 is even better, of course.

    My only complaint is not supporting locking, but this is obvisouly on the way. Nice for stuff like Word documents and UML files.

    GO SUBVERSION!!! Also try TortoiseSVN... it's the best client and integerates nicely with the explorer. If you use Linux, there are lots of options too.
    • Re:success story (Score:5, Informative)

      by DarkDust ( 239124 ) <marc@darkdust.net> on Monday February 23, 2004 @04:34AM (#8360770) Homepage
      Yes, I can confirm that. We're working with SubVersion for almost one year now, and it's a really reliable version control system. I simply love it :-)

      The only problems we've had so far were due to bugs in the Berkeley DataBase which were resolved simply by upgrading BDB and SubVersion.

      The beauty of SubVersion is its speed compared to CVS and low diskfootprint when it comes to versioning binaries. In CVS, every change to a binary file causes the complete new version of the file to be appended in the repository (AFAIK). Thus, if you change a 10kB binary file five times, the RCS file will be about 50kB. Not so in SubVersion, it handles binaries very efficient.

      Another speed-issue of CVS is that when you're working remotely your whole working copy needs to be transmitted to the server and the server checks what changed. Obviously this is a bandwidth and time eater. SubVersion stores a copy of the last checked out version on your disk and thus already knows what changed and only transmits these changes. This means your working copy is always double the size but this trade-off is one of the reasons why SubVersion is really fast even with very big repositories.

      I know what I'm talking about, the repository I maintain is now 2.8GB in size :-)

      What I'm really looking forward to is when SubVersion supports SQL based databases like PostgreSQL or SAP DB. That will be a killer feature, but don't hold your breath, the SubVersion folks say it'll take a significant amount of work to do this but they want to implement this eventually.
  • by EventHorizon ( 41772 ) on Monday February 23, 2004 @04:58AM (#8360844)
    A company I work for has a few hundred developers using Perforce. At home I've been using svn for a few months. Here's my quick comparison:

    Perforce:
    Pros:
    - Very fast. Very, Very, Very fast.
    - Stable
    - Decent cross platform support
    Cons:
    - Commercial (but not as expensive as BK)
    - Binary-only--we can't (easily) fix it.
    - Windows UI is a bit inconsistent
    - Requires manual checkout
    - Requires server for revert, diff, etc
    - Stores client state on server. Thus there are coherency issues--if you 'rm' a subtree on the client, the server still thinks the client has it, and 'p4 sync' will not refretch it. It took developers a while to grasp the need for 'p4 sync -f' in this situation.

    Subversion:
    Pros:
    - OSS License
    - More features than CVS (already covered)
    - Automatic file open (you can just start editing a file in a checked out module)
    - 'svn status'
    - Serverless revert, diff.
    - Short learning curve
    - Active developer/user community
    Cons:
    - Berkeley DB. Data does not seem to be very portable between different library versions. Yes, you can dump and reload, but the lack of binary compatibility is lame.
    - SVN Schema Changes. These also require manually dumping and reloading the repository. SVN developers claim schema changes will be rare as of 1.0. I've been through three so far... we'll see.
    - Berkeley DB. 50k in text takes 2-3MB in the DB. "Fortunately" there are arcane manual tools to prune it.
    - Performance. Not slow, but local svn is slower than LAN Perforce.
    - Berkeley DB. Twice I had to run db_recover when svn 0.36.0 locked up and/or refused to run. Tangential evidence suggests DB 4.2 fixed the bugs. Make frequent gzip'd backups of 'svnadmin dump' and you should be OK. Also test rigorously before you deploy--this is a 1.0, after all.

If I want your opinion, I'll ask you to fill out the necessary form.

Working...