Slashdot Mirror


Pragmatic Version Control Using CVS

jarich (Jared Richardson) writes "Many people will remember Andy Hunt and Dave Thomas's The Pragmatic Programmer (Slashdot review) as one of the better books on real-world best practices. It was a watershed book for many developers. However, The Pragmatic Programmer assumed a certain level of familiarity with some of the basic tools of the trade. For many readers, this simply wasn't a valid assumption, so Andy and Dave have started on a set of prequels to PragProg, called Starter Kits." Richardson reviews below that series' introduction to the Concurrent Versioning System, better known as CVS. Pragmatic Version Control Using CVS author David Thomas and Andy Hunt pages 159 publisher Pragmatic Bookshelf rating 10 reviewer Jared Richardson ISBN 0974514004 summary A hands on CVS introduction and tutorial,

What's the approach? The philosophy of this series is summed up on the Starter Kit website:
Software development is difficult enough; if you try to build on a shaky foundation it can make development almost impossible (which might account for the fact that about 50% of all software projects fail). You need a firm foundation: The Pragmatic Starter Kit is a set of basic, common-sense practices applicable in all software development environments. The techniques given in these three books are not expensive to implement and are not hard to learn, but can make the difference between being a success and being a statistic.

The first book in the series covers the what, why and how of software versioning, using CVS for the examples. It walks you through installing CVS clients, setting up your server, and using basic commands, then teaches advanced concepts. It is the new CVS handbook that can be used by both beginners and veterans.

Target Audience This book, like The Pragmatic Programmer, should have very broad appeal. It should be required reading for any junior developers or CVS administrators, and it should be a bookshelf reference book for mid-level to senior developers. It is slanted heavily towards CVS, but given that CVS is free and widely used, that shouldn't prevent anyone from using the book to learn the concepts, even if their company uses another versioning system for production work.

What's to like? As is usual for Thomas and Hunt's books, this one is a very easy read. The concepts are clearly laid out, with plenty of working examples throughout. There is a good coverage of the fundamentals as well as very advanced topics. Unlike most CVS books or tutorials, this text is clear and straightforward. It's easy to understand and follow. It's got the best coverage of CVS branching and merging that I've ever read!

What's to hate? Honestly, there is not a lot here that I don't like. The introductory chapters are little too basic, but since the book is (partly) aimed at beginners, that's okay.

Why bother reading this book? I've been using CVS for over six years now (including being the CVS admin at two companies) and this book covered a few very useful advanced topics that I had never even heard of. An example of this is the use of vendor tags (Chapter 10). Using this feature, you can have a local copy of your favorite open source project in your company's CVS server and make changes to it. You can then merge your local project with the new releases of the public project, and CVS will handle merging your changes with the public baseline. This feature is incredibly useful, but I didn't even know it existed until I read this book.

This book is a great introduction if you've never used a versioning system. By the time you've finished the book, you'll have installed CVS (client and server), created projects, created new files, merged changes, etc. If you already use versioning software, it can remind you about the features you've forgotten about (or never knew existed). This book is a great introduction and a great refresher too.

Where to buy?

Not so long ago in another Slashdot article, Andy and Dave suggested that in order to compete in the new global economy, we should all diversify our skill sets. To that end, this book is published under their new publishing company, The Pragmatic Bookshelf. You can buy copies from the Pragmatic Programmer's web site in both dead tree ($29.95) and PDF ($20.00) formats.

Summary As we have come to expect from Andy and Dave, this is another great book. The technical content is rich and clear but it won't put you to sleep. It has appeal to both newbies and veteran developers. I give it '10 out of 10 slashes.'

Richardson met Hunt while he and Thomas were finishing up The Pragmatic Programmer and has reviewed each book that they have written since -- he makes no bones about liking their work.

181 comments

  1. more reviews by Anonymous Coward · · Score: 4, Informative

    This site has more reviews for this book.

  2. Which book was a watershed event? by pcraven · · Score: 4, Insightful

    For me, I thought Code Complete was the book for learning good coding.

    On another note, does anyone else want to scream every time someone says 'best practice'?

    1. Re:Which book was a watershed event? by jbaltz · · Score: 2, Informative

      Oh. My. Dog.
      You recommended a book by a MICROSOFT EMPLOYEE? Heresy!
      (HHOS.)

      Actually, McConnell has a whole slew of good books out, Code Complete being only one of them. He even has a book on rapid development, that is also mighty good.

      --
      I am the Lorvax, I speak for the machines.
    2. Re:Which book was a watershed event? by An+Onerous+Coward · · Score: 1

      I just finished reading it last week. You would think that a ten to twelve year old book would seem crusty and outdated, but it's by far the most relevant book I've read in the last couple of years.

      Actually, there were a few points where it seemed like he really should have thrown in some discussion of Java, and I slapped myself when I remembered that it predates the language.

      "Best practices" isn't too bad a concept, though it tends to get abused a lot. "Best of breed" is the phrase that really makes my knuckles itch.

      --

      You want the truthiness? You can't handle the truthiness!

    3. Re:Which book was a watershed event? by Anonymous Coward · · Score: 0

      does anyone else want to scream every time someone says 'best practice'?

      100% of programmers fail to use best practice for everything they do.

      Aproximately 100% fail to use best practice for most of what they do.

      That's why programming is still not engineering.

    4. Re:Which book was a watershed event? by Anonymous Coward · · Score: 0

      McConnell is actually a former Microsoft employee. He is now CEO at Construx. _Writing Solid Code_ and _Debugging The Development Process_ are two nice books from Steve Maguire who is also a former Microsoft employee.

  3. GNU Arch is better than CVS by Anonymous Coward · · Score: 2, Informative

    Time to bury CVS, not to praise it.

    Check out Arch.

    1. Re:GNU Arch is better than CVS by GoofyBoy · · Score: 1

      I wonder what source control they are using. :)

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
    2. Re:GNU Arch is better than CVS by stefanlasiewski · · Score: 2, Interesting

      Really? Could you please provide some reasons why Arch is better then CVS instead of just pasting a link?

      Are the authors of the book praising CVS? Or are they just using it as an example "given that CVS is free and widely used"?

      How the heck did this get a +4 Informative?

      --
      "Can of worms? The can is open... the worms are everywhere."
    3. Re:GNU Arch is better than CVS by sfraggle · · Score: 1
      I've tried to read the Arch manual three times now and given up every time. Maybe its better for large projects, I dont know. The website and everything about just gave me this unprofessional, unfinished feel to it.


      Subversion looks a lot nicer than Arch. svn just tries to be a "better cvs" and fixes a load of the nasty things about CVS. Its a lot faster too, and theres a plugin which lets you use it in Eclipse. Plus it has some pretty cool features like the apache plugin which lets you check out over http.

      --
      were you expecting to see a sig here? perhaps you'd rather see the inside of an ambulance!
    4. Re:GNU Arch is better than CVS by Anonymous Coward · · Score: 1, Informative
    5. Re:GNU Arch is better than CVS by cduffy · · Score: 4, Insightful

      I'll grant that Arch takes a while to grok -- I spent at least a few days wrapping my mind around it. Actually following along with the examples in the tutorial helps.

      WRT your "unfinished" impression: The code itself is very clean, well-polished, readable, and robust. My only qualm is with the error-handling; there are lots and lots of sanity checks throughout, but the error messages aren't always as useful as they could be (asking for a revision that doesn't exist might give something like "File not found", or even more opaque, rather than "that revision does not exist"). Bugs that cause such things to happen without involvement of user error are extremely uncommon.

      With regard to speed, I'm not sure if you'recomparing SVN to CVS or Arch; if the latter, be sure you're comparing against tla 1.1 or later with a revision library enabled. (Even more optimizations are on their way -- Chris Mason of SuSe has proposed a patch which brings the time to replay 100 changesets down to about 4 seconds in optimal conditions; some cleaned-up variant may well make it into tla 1.2 or 1.3).

    6. Re:GNU Arch is better than CVS by Anonymous Coward · · Score: 0

      Newsflash, the Arch developers say that Arch is the best product!

      Can you provide any third party reviews? Books?

    7. Re:GNU Arch is better than CVS by davegaramond · · Score: 1

      Subversion [tigris.org] looks a lot nicer than Arch. svn just tries to be a "better cvs" and fixes a load of the nasty things about CVS. Its a lot faster too, and theres a plugin which lets you use it in Eclipse. Plus it has some pretty cool features like the apache plugin which lets you check out over http.

      That's why Subversion still has basic deficiency of CVS: centralized repository. Arch, darcs, BitKeeper, etc. have moved on to the distributed architecture approach, where every developer has his own repository.

      Besides, using BerkeleyDB for the storage is bloat. I have a small project with only about 30-40 revisions and now the repository has grown to about 40MB. WTF?!

    8. Re:GNU Arch is better than CVS by BLAG-blast · · Score: 1
      Even more optimizations are on their way -- Chris Mason of SuSe has proposed a patch which brings the time to replay 100 changesets down to about 4 seconds in optimal conditions; some cleaned-up variant may well make it into tla 1.2 or 1.3

      That's nothing, SVN and Arch only go up to 9, while CVS goes all the way up to 11!

      --
      M0571y H@rml355.
    9. Re:GNU Arch is better than CVS by rifter · · Score: 1

      Newsflash, the Arch developers say that Arch is the best product!

      Can you provide any third party reviews? Books?

      No because no one is using it except perhaps the Arch developers. Hell, even the Hurd people have not gotten in on this kool-aid.

      It may indeed be a better system, but there is still the problem that cvs is ubiquitous, well-known, and widely supported. Also hwo do you convert your cvs trees to arch and maintain history? Can you integrate arch and cvs so that you can easily migrate?

      The problem we will always have with software is that legacy data needs to be accessable. IF the new program cannot read the old stuff, it won't work.

    10. Re:GNU Arch is better than CVS by Anonymous Coward · · Score: 0

      Good post. I hate to do this but...
      "It may indeed be a better system, but there is still the problem that cvs is ubiquitous, well-known, and widely supported."

      Replace cvs with windows and you can see what's happening on the desktop.

    11. Re:GNU Arch is better than CVS by rifter · · Score: 1

      Good post. I hate to do this but...
      "It may indeed be a better system, but there is still the problem that cvs is ubiquitous, well-known, and widely supported."

      Replace cvs with windows and you can see what's happening on the desktop.

      Believe me, not only am I painfully aware of that, but I was thinking of it when I wrote what I did. If you want Linux on the desktop you have to solve the same problems Microsoft did when they were working on taking over. You have to design your interface such that users of your competition can easily and naturally use the interface, and you must allow them to quickly and easily access their legacy data. That is the law fo software no matter what software we are talking about. Fail to do this and you fail to take the market every time.

  4. Perforce by mr_pins · · Score: 0, Troll

    Perforce is the only version control software worth talking about. CVS just doesn't have the features or the robustness to be really useful. I wish CVS would go away, in favor of perforce, or better yet, an OSS equivalent. What's happening with subversion? Is it useable yet?

    1. Re:Perforce by N7DR · · Score: 4, Informative
      What's happening with subversion? Is it useable yet?

      Yep. I started using it about a month ago. Within three days I was so enamoured of it that I switched all my projects to it. Anyone who has used CVS should be able to switch almost without retraining. And the best thing of all is that the documentation (a downloadable book) is thorough, well-written, up-to-date, and full of useful examples. This project should win some sort of prize; it deserves it.

    2. Re:Perforce by cthrall · · Score: 1

      Second that...Perforce is great. Used Visual Source Safe (now with more repository corruption!), MKS (sweet jebus), StarTeam, CVS and Perforce...Perforce is the best out of those. Very simple but powerful command-line syntax. Good Windows client and VC++ integration. Works the way you would expect it to.

    3. Re:Perforce by Anonymous Coward · · Score: 0

      I use Perfarce every day and it is a total piece of shit, period. You wanna kill something? Kill Perfarce.

    4. Re:Perforce by ChrisKnight · · Score: 1

      I love the functionality of Perforce. I've used it at several jobs.

      I hate the price, and their weird-ass pricing scheme. For a quick case of sticker-shock, just go to http://www.perforce.com/perforce/price.html

      -Chris

      --
      -- This sig is only a test. If this were a real sig it would say something witty. --
    5. Re:Perforce by mr_pins · · Score: 0

      Tell me, do you use the GUI or the command line client? Just an innocent question.

    6. Re:Perforce by Anonymous Coward · · Score: 0

      GUI :(.

    7. Re:Perforce by mr_pins · · Score: 0

      Ah.

    8. Re:Perforce by RicochetRita · · Score: 2, Informative
      When our dev team outgrew CVS, we evaluated about 20 CSM products, including Perforce, Telelogic/Continuus CM, CCC Harvest, StarTeam, BitKeeper, All Change, and ClearCase (we actually managed to get Telelogic & the Rational guys to come down for a *free* live demos). We found that they all fall into one of three pricing tiers:

      I. Free or nearly free--includes: CVS & SubVersion.

      II. Under $1000 per seat--includes: AccuRev & Continuus CM.

      III. More $$$ than you can possibly imagine--includes: ClearCase & StarTeam.

      To cut it short, we eventually went with AccuRev, due mostly to environmental and budgeting restrictions. It's an unobtrusive, often maddingly slow, Java-based product, which happily fits most of our needs.

      There's a huge field of versioning products out there, most of which can only be found on poorly documented company websites, many without demo's. And each of them promises to be the last word in SCM, but with little to no comparison between vendors. (Oh sure, product FooSCM includes LifeCycle Management, but the definition & amount of "Lifecycle" varies greatly from one product to the next!)

      Caveat emptor!

      --
      Stuff that matters: circuitbreakers, vacuum-cleaners coffee makers, calculators generators, matching salt+pepper shakers
    9. Re:Perforce by Anonymous Coward · · Score: 0

      Didn't go with Continuus?

      We used Continuus the last place I worked. It was very powerful, but had a huge learning curve and a not so good UI. Some of the features were great like the directory versioning, but if you didn't do everything just right, you paid dearly.

      I use perforce now and life is better.

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

      Around these parts, we call it Visual Sorta Safe.

  5. what i hate about cvs by Frymaster · · Score: 4, Insightful
    look at this:

    cvs checkout -r mytag repository

    cvs log -rmytag -d 'yyy-mm-dd'

    two -r switches but... the first one has a space before the tag, the second one doesn't. when you look at the cederquist doco online the html really doesn't make this clear.

    if this book addresses this one quirk it's worth a hundred bucks.

    1. Re:what i hate about cvs by Anonymous Coward · · Score: 0
      The worst thing about CVS, imo, is a particular individual on the cvs mailing list. His name is Greg Woods, and the guy is a total jackass. Mailing lists for software are typically great ways to increase your power, and the CVS mailing list is no exception: there are many helpful people on the list. However, this one guy, Greg Woods, is such an asshat that it almost makes you want to quit using CVS altogether. He's always yammering on from his soapbox, berating people who are trying to use CVS in flexible ways, resisting any change or improvement in the way CVS works or can be used, and if you haven't seen him use the "if all you have is a hammer" pearl of wisdom 100 times, you haven't been reading the list very long. The good news is he seems to have cut back his postings, probably because so many people have told him he's a stuffy counterproductive twit.

      I like CVS, but Greg Woods make me want to use another tool. HTH.

    2. Re:what i hate about cvs by Anonymous Coward · · Score: 0

      The spaces don't matter. If they do, that's a bug, and should be reported as such. Usually documentation will show the space, to improve readability, but you can leave it out when you type the commands.

    3. Re:what i hate about cvs by bullestock · · Score: 1

      The space between the option and the argument is always optional.

    4. Re:what i hate about cvs by axxackall · · Score: 1
      CVS has appeared as a set of Perl (!) scripts around RCS. It was never designed like a system should be - it's just appeared, or happened. And of course, it's original language (Perl, later it was re-written into C) did not add anything clear to it.

      I am not trolling - I was reading it in several places as a historical comment of original CVS developers. Someone with better mmemory (or a longer bookmark list) may drop even URL here.

      --

      Less is more !
    5. Re:what i hate about cvs by Zenin · · Score: 1

      cvs -H checkout
      cvs -H log
      cvs -H

      The cvs command has two options sets, the first for cvs (like -q for quiet) and the rest per command (checkout, log, etc). Yes, the space thing is a quirk that shouldn't be, but the -H listings reliably show which it should be for a particular command.

      --
      My /. uid is better then your /. uid
  6. But does it have a GUI by Anonymous Coward · · Score: 3, Funny

    Unless the source control software has a complicated GUI from which you can cut and paste stuff into powerpoint, and makes checking in a file, a longer process than software development, our bosses won't go for it

  7. CVS good, ClearCase bad by pcraven · · Score: 5, Interesting

    CVS is great for version control. Don't get tempted by Rational's ClearCase product.

    A full build of a sample project with CVS takes me 30 seconds. CC takes 7 min, 30 sec.

    CVS doesn't need multi-site repositories, clearcase does if you have a lot of remote development.

    CVS doesn't integrate with the kernel, so if CVS crashes it doesn't take your whole machine.

    CVS has better add-on GUI tools for branching and comparison.

    It is easy to create and apply patch files with CVS, something not easy to do with CC.

    With CC, when you check out a file, you can't actually write to it. You have to loop and keep checking for the file to be 'writable' after check out. Even then, sometimes when CC marks the file as writable, it really isn't.

    A batch update in CVS is easy, with CC you have to check out individual files. I have a script for this. A batch update takes about 20 minutes compaired to 45 seconds in CVS.

    CVS is free.

    CVS doesn't require as much training or support time as ClearCase.

    ClearCase does have excellent command-line tools. It also has a lot more features. But you can probably live without them.

    1. Re:CVS good, ClearCase bad by Anonymous Coward · · Score: 0

      Well the answer is clearly not to use ClearCase, but I wouldn't advocate using CVS instead!

    2. Re:CVS good, ClearCase bad by Anonymous Coward · · Score: 0

      I'm guessing you don't work for IBM?

      I used ClearCase for a number of years, but I actually prefer CVS now. CVS fits the distributed internet development model much better than CC. The free part is just a bonus.

    3. Re:CVS good, ClearCase bad by Brahmastra · · Score: 1

      Seems like a lot of the clearcase features seem to be targetted towards extremely large projects involving 100s of people in a controlled environment (such as a corporationa as opposed to open source development). Using Clearcase in smaller projects involving fewer people seems way more trouble than it is worth. Clearcase sucks ass at least for such projects.

    4. Re:CVS good, ClearCase bad by pcraven · · Score: 3, Funny

      No kidding.

      I forgot to mention where ClearCase is much better than CVS though, and that is Sales People. No CVS people will take you golfing.

    5. Re:CVS good, ClearCase bad by Fnkmaster · · Score: 2, Interesting
      CVS is good. But not great. Subversion has the potential to be great - atomic commits, versioning of directories, moving files easily, cheap branching. All those things that ever made you want to smack your computer upside the head when you were using CVS because they were so obviously the WRONG way to do version control.


      Unfortunately, subversion seems to be always _almost_ stable enough for real use. Maybe this has changed recently (I've just played with it, I still use CVS for real work). I haven't really checked out GNU Arch - it seems to claim to support changesets (groups of changes), and thus I presume atomic commits, better/faster branching and merging and so on - the other good stuff that CVS is lacking. My guess is that Arch is even less mature than Subversion though, since it appears to have not been around as long.


      Anyone else know of any other good alternatives that are more mature?

    6. Re:CVS good, ClearCase bad by pcraven · · Score: 1

      What would be better? I like this rant on Subversion. Most of the other version control systems don't have a lot of 3rd party support. I like WinCVS, tortoise, Eclipse intergration, ant, etc.

    7. Re:CVS good, ClearCase bad by Brahmastra · · Score: 1

      Anyone use Merant PVCS? Lacks some basic features but simple and quick.

    8. Re:CVS good, ClearCase bad by Anonymous Coward · · Score: 4, Informative

      Informative? Makea few bold assertions without proof or understanding and its informative?

      I have supported development using CVS, SCCS, ClearCase, Kintana and BitKeeper. Each system has its advantages and disadvantages. For ClearCase, the biggest disadvantage is you have to read the manual.

      "A full build of a sample project with CVS takes me 30 seconds. CC takes 7 min, 30 sec."

      If I tune my mustand to run like crap, it will. Don't blame a tool if you haven't RTFM.

      "CVS doesn't need multi-site repositories, clearcase does if you have a lot of remote development."

      Bold assertion, care to provide even the slightest amount of example, or dare I say proof? How about a plan for using CVS across 500 developers in 8 sites, on 5 time zones. Ohh, and we are a worldwide company, so all developers need access to all code.

      "CVS doesn't integrate with the kernel, so if CVS crashes it doesn't take your whole machine"

      True. Thanks for providing context with a claim.

      "CVS has better add-on GUI tools for branching and comparison."

      Probably another RTFM. ClearCase has many powerful tools, but you have to learn how to use them. This in itself is a downfall as the quality of available software engineers continues to fall.

      "It is easy to create and apply patch files with CVS, something not easy to do with CC."

      Why? ....

      "With CC, when you check out a file, you can't actually write to it. You have to loop and keep checking for the file to be 'writable' after check out. Even then, sometimes when CC marks the file as writable, it really isn't."

      Your wrong, but I don't have time to cut an paste the manual over. You really should trying reading it sometime.

      "A batch update in CVS is easy, with CC you have to check out individual files. I have a script for this. A batch update takes about 20 minutes compaired to 45 seconds in CVS."

      I think your kinda sorta talking about a Snapshot view. Read the manual, pick up the nomenclature. It takes me 3 seconds to pick up all the changes in need in my dynamic....

      "CVS is free."

      True.

      "CVS doesn't require as much training or support time as ClearCase."

      I call bullshit. Its clear(har har) that you have never supported Software configuration management. CVS doesnt require training if all of you engineers already understand CVS. I expect the same to go for ClearCase...

      "ClearCase does have excellent command-line tools. It also has a lot more features. But you can probably live without them. "

      It has flexibility, which last time I looked increases strength. Learn what you need and ignore the rest.

    9. Re:CVS good, ClearCase bad by Anonymous Coward · · Score: 0

      What would be better?

      For small repositories, Arch. For anything else, Perforce.

      Hell I'd rather use Visual SourceSafe than CVS for a large repository.

    10. Re:CVS good, ClearCase bad by Anonymous Coward · · Score: 0

      You aren't a ClearCase developer, are you?

    11. Re:CVS good, ClearCase bad by Anonymous Coward · · Score: 1, Interesting

      All that may be true, but something about developing your own filesystem (kernel integration) just so you can back out of mistakes rubs me the wrong way. Why not integrate into pre-established file systems that already do snapshoting? Such as Network Appliance, which already does it better and faster. Any time you need to buy disk storage and a separate server to run a revision control system, you end up painting yourself into a corner.

    12. Re:CVS good, ClearCase bad by AKAImBatman · · Score: 1

      Anyone use Merant PVCS?

      I HATE PVCS WITH A PASSION!

      Does that answer your question?

      To qualify that statement, PVCS does not help (in any way shape or form) in helping you track files that have changed. Instead, you have to spend your time carefully managing your locks or tracking your files in a text file. The former is not a good method, as invariably, someone else needs the same file. Even worse, is that when you do get your lock back, PVCS will not ask about merging, it will simply f**k up the file for you. I lost a great deal of work before Merant fixed this little problem.

      Worst of all though, is that file-locked methods don't scale to large projects. Every file collision costs your developers that much more lost time, and the larger the project, the more often those collisions occur.

      3rd party support sucks too, since PVCS command line tools don't recognize many of the GUI's repository changes. (e.g. A reorg done by "linking" files to new places.)

      IMHO, CVS just does everything better than PVCS.

    13. Re:CVS good, ClearCase bad by jrumney · · Score: 1

      If you're using Clearcase, you need a specialized admin for it. This puts it in the large organization category. Maybe you could get away with installing it without knowing much about it, and just using its basic check-in/check-out features, but then you might as well save the money and use RCS. CVS is a lot easier for the average developer to just pick up and run with, and learn about as they go. 90% of projects do not use what CVS has to offer (scripting to check commits and log messages, vendor branches etc), so all the posts complaining about CVS lacking features compared with other newer version control systems are moot.

    14. Re:CVS good, ClearCase bad by Fnkmaster · · Score: 3, Insightful
      That rant seems to focus on the wrong things. Subversion should probably be more stable than it is for a 3 year old project, and I think they do some stupid things - for example, binaries should be available, more emphasis on stable releases, not just "oh, use your own subversion to check out the latest subversion sources..." please... we don't all want to be fucking SCM system developers, we just want to use it.


      But knocking Subversion because of the version numbering they use is dumb. Knocking Subversion because the system can integrate with Apache2 is dumb. Claiming that the features Subversion adds over CVS are trivial is crazy, and claiming every other SCM/version control system has them is just factually wrong. I agree that a good, modern SCM system has atomic commits, but if it was so damned simple, show me all the other systems that have implemented it that don't cost many hundreds to many thousands of dollars per seat license.


      And there are graphical tools for Subversion, though I haven't really played with them much - rapidSVN looks like the rough equivalent of a cross-platform version of WinCVS, and tortoiseSVN is a rather interesting concept, integrating in as a Windows Explorer extension.

    15. Re:CVS good, ClearCase bad by Lodragandraoidh · · Score: 1

      ummmm - you can version directory structures under CVS - as well as any file types you care to think of (binary).

      Additionally, define what you mean by 'atomic commit'. If that means you can commit the changes of just one file in the set - then CVS handles that too.

      I will have to agree - moving files is a pain in CVS. However, such a major change to your directory structures would probably warrant a new top level anyway...

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    16. Re:CVS good, ClearCase bad by cduffy · · Score: 4, Interesting

      My guess is that Arch is even less mature than Subversion though, since it appears to have not been around as long.

      Actually, in practice, I've found Arch to be not only more featureful than Subversion, but much more robust as well.

      Tom Lord (Arch's author) has written a few screeds with his interpretation of where the Subversion design and development process went wrong (to take so many man-hours to develop a product which, in his view, has severe design flaws); his arguments there are likely to be much better than any I could make here.

    17. Re:CVS good, ClearCase bad by cduffy · · Score: 4, Insightful

      *sigh*.

      Re versioning directory structures: If I rename the directory "a" to be called "b", and do a commit, I want people who do an update to suddenly have "a" renamed to "b" -- with all their local changes still intact. Subversion does it, Arch does it, CVS won't.

      With atomic commits: I change 3 files. I want do a single commit that makes these 3 files part of one atomic change. If someone does an update and gets one of these, I want them to get all of them. (Say they're a change to a method description in a header, a change to the C file implementing that method, and a change to another file calling it -- if someone does an update and only gets one of the 3 they always have a broken tree; they should have all or none). CVS won't do that; Subversion will, Arch will.

      See my other post for a bit more on why modern revision control systems are more useful.

    18. Re:CVS good, ClearCase bad by pHDNgell · · Score: 1

      I haven't really checked out GNU Arch - it seems to claim to support changesets (groups of changes), and thus I presume atomic commits, better/faster branching and merging and so on - the other good stuff that CVS is lacking. My guess is that Arch is even less mature than Subversion though, since it appears to have not been around as long.

      Try arch, it's amazing. I've thrown away CVS at my installation in favor of arch. It works quite a bit better than anything else I've used (which is pretty much RCS, CVS, and perforce) and it's simple enough to understand without even having the source code.

      It doesn't require anything special to get going. The one tla binary you build when you download the sources (self-contained) allows you to create/manage archives (repositories) on local filesystems, webdav, ftp, sftp, etc... I run my main repository on webdav and have it replicated to about five locations (two out of cron, three to laptops manually).

      From any of the replications, I can build a branch to a local filesystem (like I do on my laptops when I'm traveling) and develop within the branch until I get home. At home, I merge my changesets back into the main archive and all's well.

      And it's so easy, I don't have to read the documenation each time. I've never processed a branch in CVS without having to look up the documentation. Same with perforce and building branches.

      As far as maturity, there was a call for cryptographically signed changesets for various revision control systems. Arch's flexibility allowed this functionality to go from design to implementation in probably less than a week's worth of work (I didn't follow it that well, being the holiday and all). People have already converted their archives so all the changesets are signed, while still maintaining backwards compatibility.

      The reason? It's so simple, yet so flexible. Subversion is incredibly complicated, which reduces its flexibility. I can't be the first person who gave up a few times on subversion because I don't run Linux and couldn't get all of the pieces working on any of my systems. tla (C version of arch) is a download, configure, make. Then you can either make install or just do what I do, take the ``tla'' binary and put it everywhere you want it.

      --
      -- The world is watching America, and America is watching TV.
    19. Re:CVS good, ClearCase bad by claes · · Score: 1
      Tom Lord (Arch's author) has written a few screeds with his interpretation of where the Subversion design and development process went wrong

      Do you have a link for this?

    20. Re:CVS good, ClearCase bad by stesch · · Score: 1

      Subversion uses webdav. And for some admins that's a too big security risk.

    21. Re:CVS good, ClearCase bad by cduffy · · Score: 3, Informative

      "Diagnosing SVN" is one of the most widely linked. I think there've been a few others as well, but I couldn't locate them immediately.

    22. Re:CVS good, ClearCase bad by Jason+Pollock · · Score: 1

      "CVS doesn't need multi-site repositories, clearcase does if you have a lot of remote development."

      Bold assertion, care to provide even the slightest amount of example, or dare I say proof? How about a plan for using CVS across 500 developers in 8 sites, on 5 time zones. Ohh, and we are a worldwide company, so all developers need access to all code.

      Zowie. I've got ~100 in 5 locations using CVS without too many problems. Of course, every site has their own CVS repository - the host site is chosen based on who is doing the development. When the site changes, we tar it up and move it across. :) That way, the people doing frequent updates have local access, and everyone else does fine with not-so-frequent remote updates. Most people just soft-link the nightly smoke-test build for code they aren't directly working on - saves on compile time. :)

      500 though, that's another scale entirely! Undoubtedly ClearCase will have moved on from when I last used it. Back then (95) you needed a dedicated person to keep the database up and merged. It wasn't pretty. :) I'll have to check it out the next time I'm looking for a revision control system.

      Jason Pollock
    23. Re:CVS good, ClearCase bad by Fnkmaster · · Score: 1

      I'm trying to find information on building/using Arch for Win32. I see some references to using it under Cygwin - less than ideal, IMHO. Sure, it depends on patch, tar and diff, but I have MinGW builds of these and they are readily available for Win32. Maybe I'll futz around and see if it's possible.

    24. Re:CVS good, ClearCase bad by pHDNgell · · Score: 1

      I'm trying to find information on building/using Arch for Win32. I see some references to using it under Cygwin - less than ideal, IMHO. Sure, it depends on patch, tar and diff, but I have MinGW builds of these and they are readily available for Win32. Maybe I'll futz around and see if it's possible.

      Sorry, I don't do windows, so I can't offer much help there.

      It's really just that much different from other programming environments, which makes it hard for open source projects for open source systems to catch up. cygwin gets you there, but people always complain about cygwin (I see it here as well as in reference to postgres).

      But I don't do windows. For years, people have been telling me that someday, it's going to be required for my job. It hasn't been, and I can't imagine why it ever would be a requirement for anything (circular requirements aside).

      --
      -- The world is watching America, and America is watching TV.
    25. Re:CVS good, ClearCase bad by cduffy · · Score: 1

      You just hit on a weak point there -- Cygwin won't run Arch correctly on complex repositories until some fixes to support long filenames (by using the Win32 unicode file management API) are in.

      Such a patch has already been written, but its contribution is being held up by legal issues (the author did it on company time, and he needs to jump through a bunch of hoops before his employer will agree to transfer copyright).

      Presumably Tom could work on writing support for the filesystem abstraction layer and such to support Windows natively -- but until the available copies of tar and such cope gracefully with very long filenames, arch will still be broken on Windows.

    26. Re:CVS good, ClearCase bad by Anonymous Coward · · Score: 0
      Tom Lord (Arch's author) has written a few screeds with his interpretation of where the Subversion design and development process went wrong


      Interesting read, but no doubt the SVN team has their own 'screed' on the shortcomings of Arch ;) Besides, from the statement below


      "svn fails to significantly improve upon CVS "


      could be applied to Arch and any other contender that tries to unseat CVS it seems.

    27. Re:CVS good, ClearCase bad by cduffy · · Score: 1

      *shrug*. The SVN folks say outright that what they aim to be is a better CVS. I think the relevant phrase is "polishing a turd".

      That said, if you can dig up an article by anyone on the SVN team on Arch's shortcomings, I'd find it an interesting read.

    28. Re:CVS good, ClearCase bad by cookiepus · · Score: 1

      Re versioning directory structures: If I rename the directory "a" to be called "b", and do a commit, I want people who do an update to suddenly have "a" renamed to "b" -- with all their local changes still intact. Subversion does it, Arch does it, CVS won't.

      Interesting point. I think it doesn't come up much because when people learn how to use CVS one of the basic things they learn is that you pick your dir hirearchy before you start, because it's not going to be easy to change. What CVS really is, is RCS with a directory being a unit. Since the directory in CVS is the main point of reference, so to speak, it is consistant with the intent that you can't just rename a directory the way you want to. It certainly is a limitation on CVS at the core level.

    29. Re:CVS good, ClearCase bad by cduffy · · Score: 1
      90% of projects do not use what CVS has to offer (scripting to check commits and log messages, vendor branches etc), so all the posts complaining about CVS lacking features compared with other newer version control systems are moot.

      I disagree. The reason folks don't CVS's advanced features much is because they suck.

      No, really. Take a look at branches. They'd be exceedingly useful if they just worked right -- but half the time in CVS they're more trouble than they're worth (because merging's so difficult, branches do weird things like make files added on the branch suddenly show up in HEAD, someone always ends up checking things in on the branch that belong in HEAD or vice-versa, etc) so half the time people who would otherwise use a branch just decide to do without. That's not necessarily a conscious decision -- if you think of branching as difficult and error-prone, it's not going to come to you naturally as the appropriate thing to do as often as it would if you thought of it as trivial.

      In Arch, where branches Just Work, everyone uses them -- not just that, but folks who are making their own branch off someone else's arch repository and then merges newer changes from the parent are doing the same thing a CVS user would perform with never-used "vendor branch support" -- except in Arch, these "vendor branches" are actually useful.


      If you argue that the failure of CVS's advanted features to actually be worthwhile implies that users have no need of the advanced features of other revision control systems -- why do folks on Arch actually make use of automated changelog generation, intelligent merge operators, or cryptographically signed archives?

      Because, to put it briefly, these features are, as implemented by Arch, easily understood, readily available, and useful with few caveats -- something which can't be said regarding much of CVS.

    30. Re:CVS good, ClearCase bad by Twylite · · Score: 1

      CVS is a source control tool. ClearCase is a configuration management tool. There is a whole world of difference, which is why ClearCase sucks if you're using it purely for source control.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
  8. Re:well that's just fascinating by Anonymous Coward · · Score: 0

    Judging by his piss-poor auction site and other spam-based referral farms, I'd say "certainly not enough".

  9. CVS cons? by jason.hall · · Score: 3, Interesting

    I've always found CVS to be more trouble than it's worth. I do small-time development with Mac OS X (previously Project Builder, now Xcode) and like the *idea* behind CVS. But the articles/tutorials I've read are either how to install (which I have) and just go over the commands, or they're geared toward the expert. I haven't found much info on conceptual/fundmental questions, like on integrating with IDEs, for instance "do I check the entire development tree into CVS, or just the text files?" If it's just the text files, that seems like a lot of work. "How do I put my web site HTML files into a repository and still have the web server still be able to access it?" Overview stuff like that.

    My current way of version control is the old way of just zipping up each release!

    1. Re:CVS cons? by GoofyBoy · · Score: 1


      Source control really shines when you work with multiple people.

      If you are working alone, then its worth it if you want to track down the date and exact changes you made.

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
    2. Re:CVS cons? by Violet+Null · · Score: 2, Informative

      Last item first:

      My current way of version control is the old way of just zipping up each release!

      If it's just you working on this...well, that's fine. And it probably is the easiest. There's little-to-no reason to use CVS if it's just you.

      But, otherwise:

      I haven't found much info on conceptual/fundmental questions, like on integrating with IDEs

      Depends on the IDE. Most plugins for Windows or *nix shell out to the command line CVS, and process its output. But, I'm not familiar with Mac IDEs at all.

      "do I check the entire development tree into CVS, or just the text files?" If it's just the text files, that seems like a lot of work.

      Typically, the entire tree, but, and here's a big con of CVS, you have to have a correct cvswrappers file, or manually tell it which files are text and which are binary.

      I do the entire tree, myself.

      "How do I put my web site HTML files into a repository and still have the web server still be able to access it?"

      Assuming you have a CVS client on your web server, and it can access your CVS server, you put in a shortcut (or nightly job, or what have you) that does a checkout module, like so:

      cvs co -R -d <target directory> <module name>

      (You could use cvs export, but it doesn't seem to like overwriting files that already exist)

      But, again, CVS use is only compelling if you have more than one person working on the project at the same time.

    3. Re:CVS cons? by great+throwdini · · Score: 1
      But, again, CVS use is only compelling if you have more than one person working on the project at the same time.

      Unless, as a programmer, one suffers from split and competing personalities. Always looking over your own shoulder, second-guessing the changes made to "your" own code...

      Even for a single developer, and even in the context of webwork, cvs (or arch, subversion, etc.) is a relatively painless way to track modifications over time without heavy accumulation of redundancy (=unaltered clutter) with the periodic zip/tar+gz approach.

      And if you're working on something that you may later open to other developers ... well, might as well get in the habit of using cvs (or arch, subversion, etc.) from the start.

    4. Re:CVS cons? by Anonymous Coward · · Score: 1, Insightful

      I'm a full-time admin/developer for a commercial website and I began storing 10K+ lines of PHP scripts in CVS about 2 months ago. I have two words for you: BUILD SCRIPT.

      My script accepts flags for checkout, update, or export. Use checkout for a fresh copy if you think you might make some edits that you'll want to commit. Use update to refresh an older checkout. Use export to publish pure code without CVS metadata (you won't be able to commit any edits later, though). The build script clears out (rm -rf) the build directory for checkout/export. The last step is to set the proper file permissions.

      It's a very safe, content feeling you get when you know that your entire codebase can be wiped out (on the webserver) and at the push of a button you can rebuild it from a remote repository.

      I was intimidated by CVS at first, but now I can't live/work/play without it.

    5. Re:CVS cons? by Anonymous Coward · · Score: 1, Insightful

      Until you've rescued an inexplicably broken build with a quick 'cvs diff' its hard to understand how useful cvs can be for lone developers.

    6. Re:CVS cons? by rleibman · · Score: 3, Interesting

      No offense, but I hope I'm never in a project with you.
      Programming (at any level, small OR large) without source control is like playing in the high trapeze without a net, yeah, you can do it, and if you're really good you'll get away with it for a while, but when you miss you'll be sorry.
      Source control gives you a backup of your work, a storyline of what you've changed add to that the advantages of such a system when working with more people and I really can't imagine not having a source control system.
      As a consultant, it is the first question I asked before taking on a project: what do you use for source control. I run away if they don't have one and are not willing to let me install one.

    7. Re:CVS cons? by jason.hall · · Score: 1

      No offense, but I hope I'm never in a project with you
      Don't worry, I'm a single-man operation. :)

      I obviously don't have the CVS mindset. It just seems like a "geeky" gadget (being a geek myself, mind you, and there's nothing wrong with gadgets). About 90% of your post would be applicable if I didn't keep backups, but like I said I do - I just zip up each release. The point about having a storyline is satisfied by my changelog. In years of development for both large and small projects, I've only been interested in the info in the changelog, not the line-by-line programmatic changes that CVS would presumably give me. I can't imagine why I would want to know how the program looked between previous revisions. At that point it's obvious not working correctly, or it would be a release then. And If I ever want to see how a previous revision looked, I'll just unzip that one and look.

      I certainly took no offense, and I hope you take no offense when I say I can't believe anyone would pass up a contract just because of a lack of source control...

    8. Re:CVS cons? by kurtb149 · · Score: 1

      Wow! you really need to buy and read this book--or you are not a *software* developer, so it just does not matter.

      --
      http://www.x2ii.info/
    9. Re:CVS cons? by LetterJ · · Score: 1
      But, again, CVS use is only compelling if you have more than one person working on the project at the same time.

      Right. Because you've never implemented a new feature only to find that it broke something you thought was totally unrelated. Version control is great for "It worked on Monday" kinds of situations where you want to see what your code looked like. Most of my projects are just me and I won't work without my SVN server.

    10. Re:CVS cons? by foandd · · Score: 2, Insightful
      I certainly took no offense, and I hope you take no offense when I say I can't believe anyone would pass up a contract just because of a lack of source control...

      I think you need to look at his comments from the standpoint of someone who has gotten used to using source/version control. It may be hard to believe if you never have, but it really can make that much difference.

      I used to do things the way you do, and tried CVS mostly out of curiosity. I couldn't go back. There are just too many benefits, most of which are things I hadn't thought of before using it.

      If things work well for you, no sense in rocking the boat I suppose, but don't blithely assume using CVS would have no benefits; you're wrong. They may not be compelling enough for you to change, but they most assuredly exist.

    11. Re:CVS cons? by Quill_28 · · Score: 1

      > But, again, CVS use is only compelling if you have more than one person working on the project at the same time.

      Ummm, I would have to disagree. I used CVS for my labs in a cs class, it was great.
      Never had to worry about making back-ups or screwing something up and not being able to go back to the working original.

    12. Re:CVS cons? by ATMAvatar · · Score: 1

      If you are working alone, then its worth it if you want to track down the date and exact changes you made.

      Some IDEs (e.g. JBuilder) have this built-in, so you don't need CVS et al for it.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    13. Re:CVS cons? by rleibman · · Score: 1

      I certainly took no offense, and I hope you take no offense when I say I can't believe anyone would pass up a contract just because of a lack of source control.

      Maybe I exagerated, not *just* because of a lack of source control, but that is one question that I do ask and I find it indicative of the maturity of the environment I'll be working with.

      If the place is immature, chaotic and unwilling to learn and apply good engineering practices (which in part is why my expertise is valuable) then I'm not sure I want to set myself up for failure. Can your project succeed without good engineering practices? Most certainly! Can it fail because of lack of them? Likely. It's a risk assesment that I do, and I have turned down gigs that smell fishy, even if they are otherwise ok. Most of the times it doesn't matter though, because the kind of shop that doesn't value these things often doesn't value a good Software Engineer either.

    14. Re:CVS cons? by Anonymous Coward · · Score: 0

      The big problem with just zipping source is the archive history has no match with the change history. Make 2 changes between zips and you lose all record of one of them (your manual changelog is never sufficient). Make 2 or more zips between changes and you have to search for the right archive before you can even attempt a diff or restore (diffing against previous revisions saves my life regularly).

      I archive both my built tree and CVS repositories regularly with 7-zip. I maintain revision history with CVS. Archiving and revision logging are different things that need different tools.

    15. Re:CVS cons? by cookiepus · · Score: 1

      Cvs is a completely useless tool ... unless you need it.

      I first encountered CVS in college, where a prof made us submit one of our projects as a CVS root. The purpose was to introduce us to the concept of revision control, but it didn't make an impact on me because I was developing on my own in an incremental fashion and it wasn't necessary to go back versions.

      Then I woked at a place where I worked a few days a week and someone worked other days on the same project and we kept steping on each other's toes in terms of changes we made to production software, until it hit me that revision control is exactly what's needed to streamline the process. No more lost or overwritten changes, no morre being unsure what the other guy's done.

      then i worked on large but individual project, and i started using VSS (this was a windows based proj, the prior proj that I put in CVS was on Unix) and I figured that it would just make a whole lot of sense for me to be able to see what it is that I've been doing, and to roll back changes if needed. This came in very useful since the code was, again, developed incrementally so occasionally it would happen that "the release from 10 days ago worked great, but the software from today does add the new feature that you said it does but it also brike something else". with CVS (or VSS in this case) I could see exactly what the difference was between releases and pinpoint the source of the problem much quicker.

      At my current job, there's about 10 people working from the same CVS tree, with weekly builds becoming branches. W/O CVS we'd be completely fucked and disorganized. Developing the same software between 10 people is complex enough, if we kept fucking up each others changes it'd be a lot worse.

      The point I intended to make but digressed is that there's no point trying to study CVS. If zipping up a verion works for you, then you don't need CVS. The way I seem to work with revision control is when i realize I have some need (for example, to see differences between 2 versions of 1 file, or to see which files have changed in the last 5 days) I go ahead and figure out how to do it w. CVS. Realizing WHAT you want to do is the first step. Figuring out HOW to do it follows.

    16. Re:CVS cons? by Anonymous Coward · · Score: 0

      Try RCS. It is much simpler than CVS (CVS is actually a superset of RCS), and I find it to be more than adequate for small time development.

  10. a much easier way to accomplish all this by Anonymous Coward · · Score: 0

    is using debian apt-get

  11. Slow Starter by Dr.+Ransom · · Score: 1
    I'm crazy about Andy and Dave's Pragmatic Programmer and Programming Ruby books, so naturally I had this book as well as Pragmatic Unit Testing on my Christmas list.

    As someone whose been desparately trying to get a grasp on some advanced CVS concepts lately, especially vendor tags and tracking of third party sources, I'm a little disappointed at the slow start the book gets off to; it feels just a bit belabored reading another introdution to the basics, but I'm glad to hear there's good stuff further on. Guess I'll get back to it.

    --
    "No more rhymes now, I mean it!" "Anybody want a peanut?"
  12. svn by XtAt · · Score: 1, Informative

    who uses cvs anymore? *giggle*

    By the way, backports.org has a wonderful woody backport of subversion.

    --
    - about me
    1. Re:svn by TheSunborn · · Score: 1

      Anyone who don't want to use a cvs system, which is not even in beta yet.

      But I am waiting for subversion to finish their version 1, so I can kill -9 cvs forever

    2. Re:svn by aled · · Score: 1

      One feature that CVS has, or better say that WinCVS has is the graph of versions. I love that graph, it let's me see the revision tree at a glance and diff between any revisions just selecting them. That's a feature that you won't be seeing in Subversion because the info is not avalaible to the client. As in Subversion tags/branchs are not first class citizens I don't know it ever will be implemented.
      At least that was the status the last time I checked some months ago and no release from that did suggested it would change in the near future.

      --

      "I think this line is mostly filler"
    3. Re:svn by pHDNgell · · Score: 1

      But I am waiting for subversion to finish their version 1, so I can kill -9 cvs forever

      Try tla (arch)'s 1.1. It's far easier to set up and fairly well along (as far as I can tell, it does more, and does so more reliably and flexibly). Or if you want, try the 1.2 betas and get gpg support.

      --
      -- The world is watching America, and America is watching TV.
  13. slashes by sfraggle · · Score: 3, Funny
    I give it '10 out of 10 slashes.'
    Books are hard to read if you slash them to bits!
    --
    were you expecting to see a sig here? perhaps you'd rather see the inside of an ambulance!
    1. Re:slashes by Anonymous Coward · · Score: 0

      and the scores are hard to read if they look like this:
      /////////////////////

  14. Subversion stability? by Anonymous Coward · · Score: 1, Interesting

    Subversion still seems to have a few serious issues including rename is not atomic.

    Also, CVS, Subversion and Arch all require unique UNIX user accounts to access their repository - this sucks from an administrative and security point of view. I just want contributers to read from and commit to the repo - not have UNIX access of any kind. Is there a free RCS that just runs as a server and does not require monkeying around with the box's /etc/passwd file?

    1. Re:Subversion stability? by rbolkey · · Score: 1

      Subversion doesn't require unique UNIX user accounts if you handle access through Apache, which is pretty sweet by the way.

    2. Re:Subversion stability? by mbadolato · · Score: 1

      Subversion still seems to have a few serious issues including rename is not atomic

      Of course, subversion isn't even at beta yet. They're making very nice progress with it though, and it will rock when it's finally ready.

    3. Re:Subversion stability? by jrumney · · Score: 1

      Learn to use PAM.

    4. Re:Subversion stability? by LetterJ · · Score: 1

      Considering I run Subversion on Windows, the UNIX user accounts requirement doesn't apply to SVN. It doesn't require any system user account of any sort. When you use the Apache module, you can use most of the Apache methods of authentication and use standard htpasswd user setups.

    5. Re:Subversion stability? by volkris · · Score: 2, Informative

      Actually, subversion went beta before Christmas.

    6. Re:Subversion stability? by mbadolato · · Score: 1

      Ah, hadn't seen that! Cool.

  15. Shoehorning CVS to work with good dev practices... by cduffy · · Score: 5, Informative
    is a heckuvalot of work, and not something I'm really sure is worthwhile -- particularly with the variety of alternatives available.

    Aegis, GNU Arch (my personal favorite), Subversion, BitKeeper... all of these work around CVS's worst failings. What's unfortunate is how few people have had their expectations of what a revision control system should do set far too low by CVS.

    A few examples of features one should expect of a modern revision control system:
    • Easy branching - Branching and merging in CVS is a royal PITA, especially remerging branches which have had some changes mutually applied. CVS has a number of other design bugs related to branching -- for instance, files added on a branch suddenly show up on the HEAD when they shouldn't -- that need to be worked around, sometimes painfully.
    • Corruption-resistant repository formats - Because CVS rewrites the ,v files every time a change is made, a CVS server that crashes in the middle of an operation can cause data loss. (Not all of the alternatives are better -- a few years back, for instance, the BitKeeper installation at my workplace had a tendency to corrupt its repositories at well. BitKeeper, however, can at least detect corruption -- in the case of CVS, it's often never picked up on 'till one tries to check out a particular old version. Arch avoids the whole issue by never rewriting or removing files which have been added to the repository, as well as supporting md5sums and cryptographic signatures in the 1.2 branch to detect either low-level corruption or malicious tampering).
    • Changeset orientation - Actually checking in a set of related changes as one changeset, and attaching metadata (log entries and whatnot) to that complete set. This also makes CVS's "tagging" very cheap -- instead of needing to record the revision number of each file in the repository, only the changeset number of the repository need be tracked.
    • Intuiting revision control history - A number of tools such as cvsps and cscvs (the latter which I help maintain) will analyze a CVS repository's history and break it down into changesets. This information can be used for a global "who-did-what" or the repository as a whole (whereas in CVS one can only view history for an individual file without extra tools), for importing a CVS repository's history into a changeset-oriented revision control system (most of cscvs's users use it strictly for CVS->Arch conversions), and the like. With CVS, this is a time-consuming and error-prone operation; much of the information just isn't stored on the server at all, so the tool being used needs to try to figure it out. Merges are even worse -- there's no metadata whatsoever available in CVS to distinguish a merge from any other commit, which makes a nmuber of advanced merging algorithms impossible. A modern revision control system, on the other hand, stores all this information up-front; there's no need for the error-prone and tedious process of having some 3rd-party tool intuit it by looking at the revision control history for each individual file.
    • Automated testing - Having a test suite that automatically runs on every proposed commit is next to impossible to do accurately in CVS (as there's no good way to figure out which changes need to be grouped together into a test run), and CVS has no way to prevent a commit from happening until some external test has been run. Aegis, on the other hand, has this built in as core functionality, and Arch makes it trivial to script when using the available patch queue manager tool, tla-pqm.
    • Distributed operation - This isn't often a dealbreaker in commercial environments, but it's exceedingly useful doing Free Software development; indeed, Linus has said that he'll under no circumstances consider switching to a revision control system without it. A system with distributed repository support (such as Arch, or BitKeeper -- Aegis has rudimentry support, but it's error-prone, while Subversion has none at all) can allow 3rd parties to crea
  16. How's about by gregarican · · Score: 1

    Bitkeeper? I've seen a few good OSS projects use this and read some good things about it. Anyone, anyone? Bueller??

  17. Please give me one example of... by Anonymous Coward · · Score: 0

    ...pragmatic versioning. I have no idea what's it's about. If it's another shortcut that makes programmers more productive at the expense of customers and implementers, I'm against it.

  18. Wait for IDE support, please... by Anonymous Coward · · Score: 4, Insightful
    I'm using Netbeans on Linux. The other developers are using JBuilder on Windows. I can set up a CVS server and everyone is happy. Arch won't do that yet (righ?).

    I can't really dump CVS until there is support for the major IDEs (Including EMACS!).

    Interestingly, Subversion support for Eclipse and Netbeans is available.

    -- ac at work

    1. Re:Wait for IDE support, please... by pHDNgell · · Score: 2, Interesting

      I can't really dump CVS until there is support for the major IDEs (Including EMACS!).

      Apparently one of the xemacs developers uses arch, and I've read about various emacs arch integrations.

      Personally, I don't really see the point of an IDE in general (and I get plenty done). The most important thing to me is keeping my source safe. Having replicates, knowing that changesets are *not* ever modified, etc...gets me there. Toolkit integration is secondary.

      That said, I do have vim adding arch-tags to code when I add it. I can just sit around making changes to code and then then create a commit message and check it all in when I'm done, knowing any file I added, deleted, or modified will be picked up transparently.

      I also use xcode for some projects, and get the same effects.

      --
      -- The world is watching America, and America is watching TV.
  19. Online CVS reference by jpkunst · · Score: 5, Informative

    Open Source Development with CVS by Karl Fogel is a great online CVS manual and reference. I use it all the time.

    JP

  20. Code Complete by mbadolato · · Score: 1

    I concur with this. I highly recommend Code Complete for developers of all experience levels. It provides a nice basis for best practices, with explanations as to why the recommendations are made etc. Very useful information in there! I've had countless coworkers and developer acquaintances read it.

  21. Hooray, Subversion! It's approaching 1.0 !! by Anonymous Coward · · Score: 0

    Please consider subversion. It rocks, and the project is managed in a professional manner.

  22. Subversion compares favorably to Perforce by Anonymous Coward · · Score: 0

    ... even when you don't include price as a factor. There are a lot of favorable comments on the svn mailing lists from former Perforce users.

  23. Actually, CVS stands for... by Anonymous Coward · · Score: 0

    Actually, CVS stands for "CVS Versioning System"

  24. Silly CVS Uses by DuckFOO · · Score: 1

    I've only met one person who used CVS and he used it to version control his mbox files! Obviously, CVS can be used on any text file but is it really useful for non-programmers?

    --

    --
    "Most people would sooner die than think; in fact, they do so."
    Bertrand Russell.
    1. Re:Silly CVS Uses by random_static · · Score: 1

      version control's handy for controlling your configuration files. i've never tried CVS, but i make a point of RCS'ing my /etc directory.

    2. Re:Silly CVS Uses by DuckFOO · · Score: 1

      That would be useful! I had never considered configuration files.

      --

      --
      "Most people would sooner die than think; in fact, they do so."
      Bertrand Russell.
    3. Re:Silly CVS Uses by HermanAB · · Score: 1

      Some places use it for project document revision control too, HW, FPGAs whatever changes a lot - not just program files.

      --
      Oh well, what the hell...
    4. Re:Silly CVS Uses by fatray · · Score: 1

      I've started using CVS to hold my fiction. This lets me roll back revisions that don't work. I think most authors stash old versions in subdirectories or some such, but it gets hard to keep things straight.

      CVS would have been handy when I was writing my PhD dissertation. That thing had many, many revisions--depending on your advisor, you can spend a lot of time revising and then revising it back.

  25. Re:Shoehorning CVS to work with good dev practices by BlueFall · · Score: 2, Interesting

    Does Subversion really handle the repeated merge problem now? I have heard that Arch does do this and I don't really know about bitkeeper. I'd say that this is my personal biggest beef with CVS (aside from its ridiculously inefficient storage scheme).

    Last time I checked, repeated merge was a post-1.0 issue, but for me, it's the only reason not to move to Subversion.

  26. Re:Shoehorning CVS to work with good dev practices by jrumney · · Score: 3, Informative
    Automated testing - Having a test suite that automatically runs on every proposed commit is next to impossible to do accurately in CVS (as there's no good way to figure out which changes need to be grouped together into a test run), and CVS has no way to prevent a commit from happening until some external test has been run.

    Look up commitinfo in the CVS manual. It does both of these things.

  27. Re:MOD PARENT UP --like I said in the other thread by Anonymous Coward · · Score: 0

    He may in fact speak "some" truth, but something about developing your own filesystem (forced kernel integration) just so you can back out of mistakes rubs me the wrong way. Why not integrate into pre-established file systems that already do snapshoting? Such as Network Appliance, which already does it better and faster. Any time you need to buy disk storage and a separate server to run a revision control system, you end up painting yourself into a corner.

  28. Re:Shoehorning CVS to work with good dev practices by cduffy · · Score: 2, Interesting

    Does Subversion really handle the repeated merge problem now?

    Hmm -- I don't know for sure on Subversion; perhaps someone else here will comment. I'm positive that Arch does (it's what I use personally), and pretty sure that BitKeeper does.

    Just curious -- any particular reason you're not considering Arch?

  29. Re:Shoehorning CVS to work with good dev practices by cduffy · · Score: 2

    I distinctly recall commitinfo not being useful for this in actual practice. It was a while ago, so I'm not sure why -- perhaps it was running on the client rather than the server? (Of course, what we *really* need is a 3rd machine set up as the canonical dev environment running the tests, neither the client nor the revision control server -- something which tla-pqm makes trivial).

    I can ask the IT lead why that was, if you're really curious; his memory's better than mine.

  30. Subversion - CVS is dead and burried within 2006. by Anonymous Coward · · Score: 0

    I *do* like the pragmatic guys, but why on earth are they going introduce newbies to CVS when Subversion is out Q1 next year? It's like 100000 times better and simpler in EVERY respect...

  31. Pros for single user version control by HopeOS · · Score: 3, Insightful

    I develop dozens of projects concurrently. Keeping all the development details straight can be difficult, particular when reapproaching a project that has been untouched for several months. The ability to back out non-obvious design mistakes, start speculative development branches, and distribute projects across multiple machines, depending on where I am at any point in time has made single version control a necessity for me.

    Starting a project in CVS is simple.

    Create a directory. Maybe add a descriptive text file or two. Run cvs import from within the directory. You'll then need to do a checkout, and you're ready to begin adding makefiles, source code, autoconf delights/madness. For what it's worth, I always rename the original directory before the checkout in case CVS has a glitch. Older CVS balked at overwriting the files; maybe that's still the case.

    The last reason that I use source control even for projects that I am the sole developer is that I have on occassion, deleted critical files by mistake, and had to reimplement entire classes/modules under duress. It's a rare event, but with source control, I'm less stressed over the possibility of screwing up.

    -Hope

    1. Re:Pros for single user version control by Anonymous Coward · · Score: 0

      ugh, don't use cvs import for new projects. that's for *importing vendor branches*.

      Do it by checking out your CVS root directory (just the root directory, no subdirs):

      % cvsa checkout -l -d tmproot .

      then create your project:

      cd tmproot;
      mkdir myproject;
      cvs add myproject

      then add your files and "cvs add" them one at a time

      then return to wherever you want to do your work and "cvs checkout myproject", and get to work!

      of course if you have a huge existing codebase, cvs import works fine, but it creates a vendor branch and extra tags that don't need to exist.

    2. Re:Pros for single user version control by HopeOS · · Score: 1

      This is very interesting. The technique I present for starting a project using cvs import is documented in both books that I keep as reference (neither of which is handy at the moment). Presumably, the root checkout method is documented elsewhere (the cvs documentation itself perhaps). This does explain the 1.1 revision and 1.1.1.1 vendor branch tag.

      For what it's worth, the vendor tag and branch has never been an issue for me. In a manner of speaking, I am the vendor, although that's not what was original intended. Additionally, most of my projects have dozens of branches, so it's a non issue. The overhead of a branch is minimal, and I'm a firm believer that no one should ever be afraid to tag or branch whenever the need arises.

      As such, I stand by my recommendation that people new to CVS use the cvs import command for starting new projects even if an extra tag is created, and particularly if it's the only branch tag they ever use.

      -Hope

    3. Re:Pros for single user version control by Anonymous Coward · · Score: 0

      yes all the books (except the o'reilly book, which presents both ways + the third way of running "mkdir" directly in the repository) seem to say "use cvs import and then just ignore that vendor stuff, put your name in there or something" .. very strange...

      none of these techniques is perfectly logical though. i guess it just gets down to the fact that CVS is a little sucky. :-)

  32. vendor branches???? by Anonymous Coward · · Score: 1, Interesting

    So.. does this book explain vendor branches *well*?

    Does it explain why files stay on the vendor branch until you change them? (Which means if you change a couple files, they are on your main line, but the rest stay on the vendor branch).

    That really bugs me (i.e., shouldn't the vendor branch be tagged with only vendor's version numbers, and your main line be only tagged with YOUR tags, instead of mixed on both branches?)

    I found out that "cvs admin -b" will move the vendor code to the main line, so I always run that command after importing vendor branches. But it really doesn't make sense.

    It's much more logical to do vendor branching in Subversion (even though you are technically doing them "by hand", like all tagging and branching in svn).

    Anybody know what I'm talking about, or is this like "super-advanced CVS for anal pricks"? Maybe. :-)

    Anyway I hope this book is good. I found the O'Reilly book to be awful. I love their Ruby book.

    1. Re:vendor branches???? by Anonymous Coward · · Score: 0

      Anyway I hope this book is good. I found the O'Reilly book to be awful. I love their Ruby book.

      Dave & Andy didn't do an O'Reilly book. Both of their books were published by Addison Wesley.

  33. Example CVS project starting point by HopeOS · · Score: 3, Interesting
    There are two environment variables to be aware of, CVSROOT, and CVS_RSH. Setting CVSROOT isn't necessary, but it simplifies the cvs command line a little bit for first time users. I keep these variables in my .profile, but often as not, I use the cvs -d parameter to specify the exact repository. Once checked out, the project will remember where it came from. I use SSH for remote repositories, so the CVS_RSH environment variable is always set.
    [~me]$ export CVSROOT=/path/to/local/cvs
    or
    [~me]$ export CVS_RSH=ssh
    [~me]$ export CVSROOT=:ext:me@myserver:/path/to/remote/cvs

    Generally, you may wish to start with a simple project and check it in before beginning your work in earnest. The fewer files the better, and if you've already run configure and have hundreds of non-source build files in the directory already, it can be time consuming to remove them, despite helpful make targets. I try to start with as few files as possible, and add all my source files explicitly.
    [~me]$ mkdir foo; cd foo
    [foo]$ touch ChangeLog
    [foo]$ cvs import foo me initial
    [foo]$ cd ..; rm foo
    From here, one merely needs to checkout the project, add, and commit source files.
    [~me]$ cvs checkout foo
    [~me]$ cd foo
    [foo]$ vi Makefile foo.c
    [foo]$ cvs add Makefile foo.c
    [foo]$ cvs commit
    Obviously, a good bit of the first part could be scripted... I don't bother since I find project setup somewhat zen anyway. I enjoy the ceremony of it, and it's not a daily task anyway.

    -Hope
  34. Spammer by bigjocker · · Score: 1

    Stop modding this spammer up (notice all the referral links as 'ccats-20')

    --
    Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
    1. Re:Spammer by Anonymous Coward · · Score: 0

      did you look at the actual reviews he links to before complaining? It's not spam when it's a list of reviews for the same book being reviewed here, jackass...

  35. no one has mentioned TortoiseCVS by Corporate+Gadfly · · Score: 1

    Its pretty amazing that no one has mentioned TortoiseCVS yet. If you are using CVS and are stuck on the windows platform, then Tortoise CVS is a god send.

    --
    Corporate Gadfly
    Jonathan Archer: the most beaten up Enterprise captain in Star Trek history
    1. Re:no one has mentioned TortoiseCVS by Anonymous Coward · · Score: 0

      Thank you for posting that link!

      I'm a software developer/sysadmin/dba on a WWW team and need to get the content developers to use CVS themselves (I've been doing commits for them). I had been planning on using WinCVS, but I now plan on giving them TortoiseCVS instead.

  36. tla questions by Anonymous Coward · · Score: 0

    Is the 'tla' binary all you need?
    I thought it shelled out to tar, diff, rcs, apache and other processes to do the "real" work.

    1. Re:tla questions by cduffy · · Score: 1

      tla uses GNU tar, diff and patch at runtime. It doesn't require rcs, apache or others.

    2. Re:tla questions by pHDNgell · · Score: 1

      Is the 'tla' binary all you need?
      I thought it shelled out to tar, diff, rcs, apache and other processes to do the "real" work.


      Well, most modern systems have a reasonable tar, diff, diff3, and patch. Why should tla reimplement them?

      That said, arch is a specification. An implementation of tla might implemement tar, diff, diff3, and patch internally and avoid shelling out.

      But yes, the current system does require a few basic parts of the system. On some systems (i.e. solaris), I've had to provide some of the gnu utilities.

      That lets me talk to my standard OS X Apache server, or an ftp server, or local filesystem, etc... I don't have to create a special apache2 based web server with its webdav and deltav and bdb and whatever else they might need now.

      --
      -- The world is watching America, and America is watching TV.
  37. No Amazon? by stesch · · Score: 1

    Not very pragmatic if I can't buy it at Amazon. I don't live in the US and I don't have a credit card.

  38. text or byte by Anonymous Coward · · Score: 0

    You can also set a flag (-kb I think) so that you can version control non-text files, and if you are using a GUI like WinCVS a great front-end to CVS, then it will usually automatically handle that for you.

  39. Re:Shoehorning CVS to work with good dev practices by pHDNgell · · Score: 1

    Arch avoids the whole issue by never rewriting or removing files which have been added to the repository

    I don't think this can be emphasized enough. The most important thing a revision control system can do for me is guarantee the safety of my code (as it's my work product and the most valuable thing I've got). Knowing that the history of my project is accurate because it is never modified (by the arch tools, anyway) is very important to me.

    --
    -- The world is watching America, and America is watching TV.
  40. Re:Shoehorning CVS to work with good dev practices by jrumney · · Score: 1

    commitinfo runs on the server, the CVSROOT directory is not normally even checked out to the clients. And ssh (or less secure equivalents) make it easy to use a dedicated test machine.

  41. CVS does not require unix account! by marcink1234 · · Score: 1

    One can setup CVS so multiple client accounts are mapped into single or a few unix accounts. There are plenty interesting files in CVSROOT ;-)

  42. What I've wanted to do with CVS... by Anonymous Coward · · Score: 0

    I've always wanted to come up with a scheme that would take the entire /etc directory of a Linux box, commit it to CVS, then be able to similarly commit a number of similar machines as branches and keep all of them up to date by committing after each change. That would make it easy to see the configuration differences between any two machines and/or two points in time. However, I've never come up with a non-destructive way to get this started with existing machines. Is there one?

  43. Why do people stick to CVS? by axxackall · · Score: 2, Insightful
    Bitkeeper is not free. Subversion is not really ready. But why people ignore Arch and Aegis then?

    Aegis is around for about 10 years - for that time people could already recognize it's great features, design and implementation. Why didn't they do?

    I am suspicios that most of people tend to prefer more primitive solutions by the same reasons as they stick to Windows. They can quickly start, but they don't really care about upcoming problems.

    When I think about huge popularity of Windows and CVS I begin to disappoint in the humankind.

    --

    Less is more !
  44. Arch isn't production quality by Anonymous Coward · · Score: 0

    My god, how can you recommend Arch when there isn't even a production-quality release yet?

    All I see is 'arch-pre1' 'arch-pre9', etc at their website:


    http://ftp.gnu.org/gnu/gnu-arch/

  45. Re:Shoehorning CVS to work with good dev practices by doom · · Score: 1

    Thanks for the detailed description, in particular for your clear description for what you might want to do with a distributed version control... I've read a number of pro and anti bitkeeper flames, but none of them have made that clear.

  46. Re:Subversion - CVS is dead and burried within 200 by Anonymous Coward · · Score: 0

    It's like 100000 times better and simpler in EVERY respect...

    Except in implementation..

    A versioned file system layered on top of Berkeley DB? EXCUSE ME????? Berkeley DB is key/value database .. how the heck do you get TREES out of it?

    The great thing about svn is the simple CVS-like interface. That's it. I predict it will collapse under it's own weight by 2006.

    Unfortunately I can't really come up with any better alternatives. I like the underlying implementation of Arch but the interface is overly complex. The other choices are commercial and/or from companys with dicks at the helm.

    Honestly, CVS will be my weapon of choice for longer than I'd like.

  47. Re:Shoehorning CVS to work with good dev practices by Anonymous Coward · · Score: 1, Interesting

    Yes, but CVS is unfortunately "good enough" (and just barely).. all those other systems have their own shortcomings:

    subversion: grotesquely bloated opaque "versioned filesystem" built on top of BerkelyDB... not really based on changesets, it can't remember what you've merged.. has a nice CVS-like interface though. I personally believe that versioned filesystem business will become a huge albatross once they run into the practical problems of computing and storing deltas *efficiently*, and handling the changeset concept properly.

    arch: confusing and non-intuitive interface .. many things take multiple intermediate steps instead of one .. versions and revisions have an odd syntax with "--" in between the components. Directories/URLs with "{}" in the name are problematic. Wonderfully pragmatic storage mechanism though, the best of "hackable" CVS repositories and atomic databases.

    bitkeeper: proprietary, issues on Linux kernel list leave a bad taste in my mouth (I don't care about "programmers paying their mortgage", I care about getting my work done). Can eat up RAM.

    perforce: proprietary, though actually I kindof like this one, but too expensive for me.

    I'm waiting for the perfect version control system, none of these are it. So with a heavy heart I continue to use CVS. For my purposes it does the job. I'd love to see a CVS-like interface on Arch though, or at least a *simpler* interface. The help screen is 182 lines long!! for CVS it's like 40.

  48. CVS bad, ClearCase bad, Arch good. by cduffy · · Score: 1
    A full build of a sample project with CVS takes me 30 seconds. CC takes 7 min, 30 sec.
    Checking out a repository with a server-side cachrev is, in Arch, as fast as downloading and unpacking a tarball of the project over $CHOSEN_TRANSPORT (say, http). Creating a working directory of a repository with a client-side revision library is, with all the optimizations turned on, as fast as creating a hardlink tree shadowing the revision library's tree. (Of course, this needs to be done with your editor set to break hardlinks -- all the major ones do -- and Arch will detect it should a file in the revision library be modified without breaking the hardlink by mistake).

    Doing an update in a tree where one file has changed is a simple as downloading the single changeset -- unlike CVS, where the status of every single file needs to be queried to find the one that's altered. In a 30,000-file tree, this is a major performance improvement.

    CVS doesn't need multi-site repositories, clearcase does if you have a lot of remote development.
    Bah -- neither CVS nor ClearCase can really scale.

    For an example of my "CVS can't scale" assertion in action, just look at the pains SourceForge has had to go through, and oppose that to a system like Arch (where the repositories can be served over a completely unmodified web server using standard HTTP load-balancers, multi-layer distributed caching and all the other techniques used by high-volume web sites serving static content).

    CVS has better add-on GUI tools for branching
    Arch doesn't need GUI add-on tools for branching -- indeed, the ease and power of its branching and merging operators is one of the things that best recommends it.


    CVS may be adequate version control for those with few needs -- but by no means is it "great". See my other post for more on that.

  49. Re:Shoehorning CVS to work with good dev practices by cduffy · · Score: 1

    I'm not going to defend the others, because I don't particularly like them either, but let me throw in a word or two about Arch here:

    The interface to Arch is only unintuitive until one's played with it enough, or crawled inside Tom's head for a bit. Given this effort, Arch just Makes Sense -- quite a lot of the interface reflects the underlying implementation concepts and such quite cleanly.

    Further, the "extra steps" argument is less true than it used to be. For instance, tla 1.1's archive-setup command makes into a single step what used to be a 3-step process (creating a new category, branch and version in the archive for a fresh project or branch), and star-merge has a syntax that's vastly simplified.

    Tom has played around with the idea of writing "itla" -- an interactive client for TLA -- or overarch (a tool for writing project-specific arch scripts). In the meantime, though, there are a fair number of 3rd-party frontends available -- I don't use any of them, but Samium Gromoff has been actively looking for user feedback on "tlator", so it's probably a good place to start.

  50. Re:Shoehorning CVS to work with good dev practices by lifeless · · Score: 1

    re archive-setup, let me add that init-tree can take a previously seven-step process:
    create-archive
    create-category
    create- branch
    create-version
    init-tree
    make-log
    impor t

    down to three:
    create-archive
    init-tree
    import -S -s "initial import of project foo"

  51. Re:Subversion - CVS is dead and burried within 200 by slipsuss · · Score: 1

    I hope you don't mind, I've saved your quote about trees. It cracks me up, along with other Subversion developers.

    If you want a serious answer: we have several db tables. The values in the tables are lisp-like "s-expressions" that hold real data and keys to other tables. It's a way of getting "columns" when you don't have a real SQL backend. And by the way, it works extremely well.

    (We do have future plans, however, to give the repository a real SQL backend someday.)

  52. Some facts about Subversion (and CVS). by kfogel · · Score: 1

    A number of posters ask why would one even want to use CVS considering its known faults? Although I'm personally partial to Subversion, choosing CVS doesn't seem unreasonable. CVS is no less useful today than it was (say) two years ago, before Arch or Subversion or any of the other new kids on the block were ready. If you want something that does the job and whose problems are known, CVS is not a bad choice.

    But on to the real reason for my post:

    Some of the posts here make simply wrong statements about Subversion. Below are corrections.

    1. Subversion does not require a Unix user account per vc user. Furthermore, this is true not just with the WebDAV (http://) access method, but also with the svnserve (svn://) method. Some posts said otherwise; not sure why.

    2. Subversion does *not* require Apache, nor does it require you to use the WebDAV protocol for repository access. Apache/WebDAV is one of two entirely independent network access methods. The other is a custom protocol (think of it like CVS pserver) using a custom server (svnserve) and its own URL space, "svn://".

    3. Subversion is not in Alpha anymore, it is in Beta. This was a recent transition, so it's understandable that people wouldn't have known about it.

    4. Someone said you can't make client-side graphical reports about revisions and differences, because the client doesn't have access to the right information. I think this person must have read and misunderstood a highly technical mailing list thread. The client does have access to the necessary information already (see 'svn log -v' for starters).

    People with further questions about Subversion should please come to users@subversion.tigris.org, or irc.freenode.net, channel #svn. Hope to see you there!

    By the way, I have not used Arch in a long time, so can't comment on the differences between it and Subversion.

    --
    http://www.red-bean.com/kfogel