Slashdot Mirror


Open Source Development with CVS

Managing software development is a job right up there with aircraft controller in the realm between fascinating and nerve-wracking. chromatic's latest review is of a book introducing one of the best known tools for managing the complexity inherent in such projects, Karl Fogel's Open Source Development with CVS.

Open Source Development with CVS author Karl Fogel pages 316 publisher Coriolis Open Press rating 8.5 reviewer chromatic ISBN 1-57610-490-7 summary More than a summary of CVS commands, Open Source Development with CVS is a study of how to organize and lead free software projects.

The Scoop Free software, the theory goes, is in a constant state of release. Instead of working in secret for years to produce a Grand Unified Model of Everything, then unleashing it on an unsuspecting world to the accompaniment of television commercials and full-page ads in trade magazines, development occurs in public view. That's aided, in no small part, by the convenience of CVS. So argues Karl Fogel in his introduction to Open Source Development with CVS. In that case, why not try it yourself?

Interspersed between CVS How-To chapters are Developer How-To chapters. For example, chapter 3 describes the author's theories on the entire Open Source process. That includes such common-sense advice as "Release something useful" and "Release something usable." There're plenty of examples to back up these ideas, drawn from the examples of large and popular open source projects.

What's to Like? CVS-specific chapters build on each other. Though 95% of the commands the average developer will ever use are covered in chapter two, the increasingly specific information just may come in handy someday. Though there's a price to pay for flexibility, the increased power it brings is worth it. If you've followed the examples and done some testing of your own, you'll have earned the title 'CVS Guru' by the end of chapter six.

Fogel's development essays take the pragmatic approach. Rather than preaching the One True Way to Do It, he analyzes several successful projects (Apache, the Linux kernel, and CVS itself being among the most prominent) and attempts to draw general principles from their histories. His overall philosophy seems to be "manage a few things well and strictly, and let your project evolve." With a good framework in place (both in your code and for your project administration), things will work smoothly and you'll be more likely to reap the benefits of the free software model.

Chapter eight gives troubleshooting tips. Fogel walks through the most common errors he's seen, doling out explanations and solutions with abandon. Chapter nine is a good reference, neatly summarizing CVS commands and files. Having completed the rest of the book -- and understanding the concepts, this section has the exact syntax at your fingertips.

What's to Consider? Though a complete reference on its own, occasionally the author defers discussion of some subjects in favor of referring to the Cederqvist manual accompanying a CVS source distribution. To be fair, these are often highly technical minutiae, but at 316 pages there is space for an expanded explanation of topics such as the RCS roots of CVS (knowing the source of CVS can help one to understand why some things are the way they are). Thankfully, there's information provided about the official FAQ and mailing lists where such data can be found. The Summary Beyond a comprehensive guide to using and administering CVS, Karl Fogel has written an easy-to-read guide on successful Open Source development. His practical focus and laid-back approach should prove workable for everything from pet projects to large undertakings. The author and Coriolis, the publisher, have also made chapters 2, 4, 6, 8, 9, and 10 available online at http://cvsbook.red-bean.com, under the GPL. Table of Contents

Purchase this book at ThinkGeek.

  1. Why Open Source Development and CVS Go Together
  2. An Overview of CVS
  3. The Open Source Process
  4. CVS Repository Administration
  5. Designing for Decentralized Development
  6. Advanced CVS
  7. Building, Testing, and Releasing
  8. Tips and Troubleshooting
  9. Complete CVS Reference
  10. Third-Party Tools That Work With CVS
  1. CVS Maintenance and Development Today
  2. GNU General Public License

127 comments

  1. CVS as the standard? by heiho1 · · Score: 3

    Clearcase is pretty good and Visual Source Safe works well on Win32. I think CVS is superior because it is more cross platform and *flexible* about what you can do with it. I like being able to migrate development over various platforms because you never know when Win32 will suddenly cease to be viable or Linux will pale next to Solaris for some high-performance server side code [hey, it could happen]...

    1. Re:CVS as the standard? by dsplat · · Score: 1
      I like being able to migrate development over various platforms because you never know when Win32 will suddenly cease to be viable or Linux will pale next to Solaris for some high-performance server side code [hey, it could happen]...


      More importantly, you aren't stranded when the company that owns it gets bought out by a competitor who give you an uncomfortable migration path to their product. That would be the competing product you rejected last year because it didn't do what you needed. And speaking of that, like all other GPL'ed projects, if you need a feature, add it, or offer to support a development team that will.
      --
      The net will not be what we demand, but what we make it. Build it well.
    2. Re:CVS as the standard? by bluebomber · · Score: 2
      Visual Source Safe works well on Win32.

      Excuse me? VSS *sucks*. Ok, it might be reasonable for one, *maybe* two people absolute max. We're (trying to) use it for ~30 people and it is awful...

      CVS, OTOH, is a wonderful tool. I haven't had to use it in a group of more than a half-dozen developers, but it holds up well, provides a better security model, and is truly cross-platform (the win32 clients work quite well). And I must say that this book has been a valuable reference. If you have to admin CVS, definitely get it. If you are just using CVS, get one or two copies for the group to share.

    3. Re:CVS as the standard? by mihalis · · Score: 1

      I have limited experience of Visual Source Safe, but I do have one very strong criticism - it's not good over high latency networks. I collaborate with a colleague in London who does most of the coding on some of our modules. Because our repository is in New York, he had to stop using Visual Source Safe for day-to-day source code control as it was taking WAY too long to do simple operations. By contrast, our shared CVS repository on my Sun workstation here in NY works fine when he is dialled in from home in London even!

    4. Re:CVS as the standard? by smileyy · · Score: 1

      I know it's easy for CVS to be run over commonly-available secure connections like ssh. Does anyone know if that's possible with VSS, or would one have to go about setting up a VPN to securely communicate?

      --
      pooptruck
    5. Re:CVS as the standard? by drinkypoo · · Score: 1

      Luckily, we only have three or four people using VSS here.

      It really is a joy to use, though, if you're using visual interdev. (I wonder if they named that to try to steal the name "vi"?) Since you can check files in and out from the project pane, it's very very convenient.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    6. Re:CVS as the standard? by BigRedZX · · Score: 2
      Clearcase is pretty good and Visual Source Safe works well on Win32. I think CVS is superior because it is more cross platform and *flexible* about what you can do with it. I like being able to migrate development over various platforms because you never know when Win32 will suddenly cease to be viable or Linux will pale next to Solaris for some high-performance server side code [hey, it could happen]...

      And if you want something superior to CVS, but without the financial hemmorage that is ClearCase, get Perforce

    7. Re:CVS as the standard? by aldur · · Score: 1
      We have about twenty developers using both Windows and Linux and VSS seems to work nicely enough. I would have preferred CVS but the Windows guys didn't like the fact that you can't lock the file you are editing (it's possible but it's not the CVS way). SourceOffSite has a nice (commercial) client available for Linux so that I don't have to use VSS Win32 client and a Samba share (puke) for Linux development.

      More about SourceOffSite here.

    8. Re:CVS as the standard? by asciitxt · · Score: 1


      I'll chime in here and share my experience.

      I use both CVS (on Linux and NT, 2 users) and SourceSafe (on NT, 40 users) constantly. I've also used ClearCase (on Solaris and NT, 20 users) for two years.

      I also maintain and administer CVS (for a project a buddy and me are working on).

      ClearCase is extremely powerful, but is has its own filesystem and is so complex, my group had many problems with it. I also found the performance, even over a high-speed LAN, crummy. I know there are snapshot views, but we found them problematic. ClearCase is probably well-suited to
      huge legacy systems supporting multiple concurrent
      releases, but it's expensive (I hear > 100,000 per year for my company) and very difficult to administer (probably need a person who does nothing else). Distributed development over many cities seems unlikely.

      SourceSafe is easy to use and better than most Microsoft products (of course, they bought it rather than develop it in-house), and even supports distributed development through an add-on
      called Source OffSite. But it's not cross platform, can't be administered remotely and is primarily GUI-driven (although I hear some things can be done from the command line). The biggest complaints, which I haven't seen myself yet, are that it doesn't scale well, nor does it properly support multiple branches well -- which ClearCase does.

      CVS has been an absolute pleasure, and I administer it myself from 600 miles away where it is hosted on an old Pentium 200 running Linux. The online chapters of the CVS book have been extremely helpful. Even a newcomer like myself has been able to set it up. Plus, with the wonderful web front-end, CVSweb, as well as TkCVS, it's as easy to use on the client side as SourceSafe. I can't speak to the scalability or branching management personally (although large projects that use CVS do), I find it offers the best of both worlds -- configurability and ease-of-use.

    9. Re:CVS as the standard? by Peter+La+Casse · · Score: 1
      Excuse me? VSS *sucks*. Ok, it might be reasonable for one, *maybe* two people absolute max. We're (trying to) use it for ~30 people and it is awful...

      I'm interested in hearing more about the problems you are having with VSS. Here at work there's a push to replace CVS with VSS and, having never used VSS, I don't have much ammunition to use against it.

      Reply via email if you like.

    10. Re:CVS as the standard? by ethereal · · Score: 1

      Speaking as a ClearCASE user (all hail the most overengineered of source repositories) locking the file while you are editing it sounds like a disaster. For the projects that I've worked on we use ClearCASE to make branches of the file, and then users can modify their branches without affecting the project mainline. Sure, they have to merge in sometime, but ClearCASE has tools to do that also.

      I'm not familiar with CVS and VSS - how would those tools handle this?

      ClearCASE warning: don't upgrade from v2.1 to v3.x, the GUI becomes much more painful to use. Imagine a confirmation dialog every time you try to close a window, for example - not pretty.

      --

      Your right to not believe: Americans United for Separation of Church and

    11. Re:CVS as the standard? by ethereal · · Score: 1
      [ClearCASE] Distributed development over many cities seems unlikely.

      A project that I work on every day is in ClearCASE at multiple sites, and it more-or-less works OK. We only get updates from the other sites on a defined update schedule, so you don't always see others' changes at once. But as long as you divide responsibility so that most of the responsibility for this half of the project is in city A, and the rest in city B, you can stay out of each others' way fairly well. We also use project, bug-fix, and site-specific branches for any changes, so there are no multi-site fights for the project mainlines. There are some locking mechanisms built-in to help smooth over multisite issues; we use them and have only a few more issues with concurrent development in other states or countries than we do with development on the other side of the building.

      I'll agree with the rest of your points, though - it is expensive and very complicated. Parts of it start to make a lot more sense after you use it for a couple years, and it really is a powerful tool for large projects, multisited projects, or multiple concurrent projects using the same codebase. It's fairly stable - we've only had one episode of vob corruption (for my project, at least) in the last couple years, and that was due to hardware rather than ClearCASE failing.

      --

      Your right to not believe: Americans United for Separation of Church and

    12. Re:CVS as the standard? by The_Alan · · Score: 1

      I don't claim to be an expert on this subject by any means, but I'll share my personal experience with VSS. I work in a remote development office of a Seattle company (not M$) on the east coast. Our transfer rate is usually ~60KB/s. When I start the VSS client it takes > 1 minute to simply display the source tree. All other procedures (eg. expanding a branch, or right-clicking on anything) take > 10 seconds to respond. My best guess is that there's a ton of small communications between the VSS client and server that make using it over a network with any kind of latency just plain suck. And then there's all the crap it embeds in your VC++ project files...well I won't get into it, just stick with CVS.

    13. Re:CVS as the standard? by jerobins · · Score: 1

      Source Safe, originally from One Tree Software, was designed to be cross platform. We used their original product to manage development across DEC Ultrix, OS/2 and MS Win.

      Too bad Microsoft didn't see value in a cross-platform product...

      --
      James E. Robinson, III Centennial Networking Lab - NCSU
    14. Re:CVS as the standard? by GKlesczewski · · Score: 1
      I also use VSS for development here (Single person projects) for Visual FoxPro (Ack) projects. VSS, quite frankly STINKS. It uses a shared file system for its source database, like FoxPro. The problems include its handling of binary style files (tables, forms, projects, etc.) and release cycles. We use a three level environment, Development / Test / Production, and VSS has a severe problem handling the migration. I cannot update the Test project with the latest source. I have to delete and recreate the project to do this. Same thing with the Production space. Part of the problem, I know, is the integration with the VFP environment, but still, working with VSS has been painful. If you are going to use it, stick to text only files, and be Extremely careful with the Project files / environments.
      Programming today is a race between software engineers striving to build bigger and better idit-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning.
      -- Rick Cook, Mission Manager, NASA Mars Pathfinder Project
    15. Re:CVS as the standard? by pudge · · Score: 2

      If you see the CVS page for Slash code, you see I have a hell of a lot of commits there, and I have done almost all of it with maccvs. Cross platform, indeed. :-)

    16. Re:CVS as the standard? by bharlan · · Score: 1

      File locking just doesn't scale well to a larger number of developers. Even five developers can be too many if they work on the same files. Too often someone will preemptively lock a file or forget to check it back in. With good merging functionality, you can keep updating your modified copy with changes that others are checking in. You can see that someone else is working on a file without requiring them to lock the file.

      --
      (Reality reasserts itself sooner or later.)
  2. GPL by YASD · · Score: 2


    If some of the chapters are being released under the GPL, doesn't that make the whole book a derived work...which would also have to be released under the GPL?

    ------

    --

    ------
    You are in a twisty little maze of open source licenses, all different.
    1. Re:GPL by smileyy · · Score: 3

      Um, no.

      Karl Fogel and Coriolis, the copyright holders, can do whatever they want with the material that they hold the copyright to.

      Another author using those chapters in a derived work would have to release the derived work under the GPL, or obtain a separate license from the copyright holder(s).

      FWIW, I went to school with Karl. Never knew him, but it's neat to see that he's written a book. Makes me feel inadequate, too.

      --
      pooptruck
    2. Re:GPL by JamesOfTheDesert · · Score: 1

      Speaking of which, I just tried to download the GPL'ed chapters, and not one of the links worked. Nothing but "Page Not Found" errors. Very disappointing. Is it me, or are there a greater number of annoying little things like this in OSS that would raise screams if done by, say, Microsoft, but are blithly overlooked when done in the name of OSS?

      --

      Java is the blue pill
      Choose the red pill
    3. Re:GPL by Christopher+Cashell · · Score: 1

      It's still freely available via anonymous CVS. See http://cvsbook.red-bean.com/anoncvs.html for instructions on getting it.

      The CVS version is the texinfo format, and includes a Makefile to build the alternate formats.

      --
      Topher
    4. Re:GPL by slipsuss · · Score: 1

      Sorry, you caught us with our pants down. Apparently the scripts we use for keeping the book on-line failed recently, and of course we didn't notice till today. :) The HTML is back on-line, and the rest of the links should be working shortly.

  3. Constant release model? by Anonymous Coward · · Score: 1

    The so-called "release it early, release it often" model of open source development is quite simply a load of nonsense, and not one that anybody engaged in a project which they want to ever complete should bother with.

    If you have some ivory tower ideal in which bug are found as soon as possible, then you end up spending all of your time fixing these bugs (because all open source does is let more people complain about bugs) and trying to satisfy vocal Linux "hackers" who want feature X, compatibility with program/desktop/window manager Y or whatever by spending additional time doing this in an attempt to deliver.

    Let's face it, how many open source projects ever get anywhere? Apache and Linux are the only two that I can think of, and that's because they got in before everyone jumped on the bandwagon. On the other hand we have vapourware like ext3, wishware like the GIMP and crapware like Mozilla to try and keep us going.

    All I can say is thank God for Borland, leading the way in allowing corporate interests to migrate to Linux.

    1. Re:Constant release model? by Anonymous Coward · · Score: 2

      The so-called "release it early, release it often" model of open source development is quite simply a load of nonsense, and not one that anybody engaged in a project which they want to ever complete should bother with

      The "relase early, release often" model is the very soul of Open Source Software. Eric Raymond, in his landmark Cathedra l and the Bazaar , which lead directly to the start of the Open Source Revolution, wrote so much, and am I to believe that you are more knowldgeable than the inventor of Open Source?

      If you have some ivory tower ideal in which bug are found as soon as possible, then you end up spending all of your time fixing these bugs (because all open source does is let more people complain about bugs)

      As Mr. Raymond said, "Many eyes make all bugs shallow", once again proving he is right. Open Source Software rarely has bugs do to it's very nature. OSS programmers make fewer, if any, mistakes than their commerical counterparts, and scientific studies have backed this up.

      Let's face it, how many open source projects ever get anywhere? Apache and Linux are the only two that I can think of

      Fetchmail is a very sucessful Open Source Projects which from Eric S. Raymond. I use it all the time.

      On the other hand we have vapourware like ext3,
      wishware like the GIMP and crapware like Mozilla to try and keep us going.


      Well, I heard that ESR will be working with the Gimp's Scheme code (since he helped to write Scheme), but I haven't heard anything about his involvement in the Mozilla project since the early days of it. He hasn't even mentioned ext3, so I can't comment on it.

      All I can say is thank God for Borland, leading the way in allowing corporate interests to migrate to Linux.

      I'm just hoping they'll become interested in NetBSD!

    2. Re:Constant release model? by sethg · · Score: 2
      This is just silly.
      If you have some ivory tower ideal in which bug are found as soon as possible, then you end up spending all of your time fixing these bugs
      And the alternative is what, not fixing bugs?
      and trying to satisfy vocal Linux "hackers" who want feature X, compatibility with program/desktop/window manager Y or whatever by spending additional time doing this in an attempt to deliver
      "I want feature X."

      "I don't care so much about feature X, but if you want it, then you write the code for it."

      Where's the problem?
      --

      --
      send all spam to theotherwhitemeat@ropine.com
    3. Re:Constant release model? by Anonymous Coward · · Score: 1
      Eric Raymond, in his landmark Cathedra l and the Bazaar , which lead directly to the start of the Open Source Revolution, wrote so much, and am I to believe that you are more knowldgeable than the inventor of Open Source?

      I beg to differ. The true father of the Open Source Revolution is none other than Richard M. Stallman. ers is nothing but an outcast, a reject, with inferiority syndromes because his contributions were not of high enough quality to be included in the allmighty emacs .

      OSS programmers make fewer, if any, mistakes than their commerical counterparts, and scientific studies have backed this up.

      Agreed. Only I would have chosen the British spelling: commercial.

      Fetchmail is a very sucessful Open Source Projects which from Eric S. Raymond. I use it all the time.

      But isn't emacs a much better example? It allows you not only to fetch mail, but to read it as well. Furthermore it allows you to read news, compile and even execute programs, play games and it is self documenting too! I hope you see the error of your ways and are more careful in the future when choosing who you listen to.

      I'm just hoping they'll become interested in NetBSD!

      Aha! Another indication of your ignorance, although I do not blame you. You have clearly been misguided by that blasphemous esr.

      As the wonderful Richard M. Stallman says here NetBSD has numerous problems with its license, including even advertising clauses! Well, so much for Open Source Software.

      Thank you.

    4. Re:Constant release model? by Black+Parrot · · Score: 2

      > The so-called "release it early, release it often" model of open source development is quite simply a load of nonsense

      So, what release model do you use for your OSS project, and what are the pros/cons of using your model vs the RO2 model?

      --

      --
      Sheesh, evil *and* a jerk. -- Jade
  4. give us a break by c_a_moffitt · · Score: 1
    Version control software is a cornerstone of any collaborative programming effort, and this book certainly looks good.

    But, come on now, this article is just an add for think-geek.

    1. Re:give us a break by pen · · Score: 1
      Well... it's more of a way for Slashdot to make money through a referral program. I guess it's an ad as well. If you don't want to help Slashdot, you can buy the book by just going directly to ThinkGeek. Better yet, you can get the book a lot cheaper here.

      --

    2. Re:give us a break by vaevictus · · Score: 1

      What do you expect? it's a BOOK REVIEW .

      --
      There *is* a program I enjoy using on windows... It's called FDISK.
    3. Re:give us a break by cmbannan · · Score: 1

      The problem is that many, many people don't get that. Your comment assumes a knowledge of the concept of best practices. Didn't you ever work with anyone who thinks CVS, et al, are backup systems? Consider yourself fortunate. As an aside, version control is also a cornerstone of a concurrent project model as well as a general product model.

  5. This seems really cool by petard · · Score: 2
    Not only is he releasing a nice portion of the book for free electronically, but he encourages you to avoid amazon.com. From the site:
    You can get it directly from the publisher at http://www.coriolis. com/bookstore/bookdetail.cfm?id=1576104907 (due to Amazon.com's recent abuse of the patent system, I am participating in a boycott of Amazon, and ask that you not purchase this book, nor any other, from them).
    After looking at his site, this not only looks liek a great book, but an author I'd like to support. Besides, my CVS skills need the polish.
    --
    .sig: file not found
  6. CVS at work by Iorek · · Score: 3

    My employer purchased the book about 6 months ago on my recommendation. The FAQ and Cederqvist are great, but I thought this was the best way to introduce the office to CVS.

    As the review said, when you're asking the technical questions, the answers can be found. I don't think that Fogel was trying to replace Cederqvist on that front.

  7. Execellent Book by Darkseer · · Score: 4
    I work for a consulting company who just implemented CVS for a client. The were using VSS and had to be shown the light. They were actually loosing productivity do to currupt version databases and VSS's oh so discriptive data files. This book helped me and others easily learn the intracacies of CVS and implement CVS in a sane manner for both remote and local development. I highly recommed it to anyone doing Config Management work!! The watches section was especially useful for what we were doing.

    --

    BOFH, My model for being a sysadmin :)

    1. Re:Execellent Book by selectap · · Score: 2

      My group also used VSS in the past, and we also had some major issues with the VSS database corrupting on us. One of the major advantages of CVS is the simple file format it uses. I've moved our repository three times already and I've never had much of a problem doing so. Moving to CVS also allowed us to use any OS we wanted to for development (in Java), which was also a big plus.

  8. Broken builds under concurrent development? by tjwhaynes · · Score: 2

    As a matter of interest, do projects using CVS find that the builds of software projects get broken under a concurrent development scheme, as changes by others working on the same files may have unforeseen side effects not picked up by the automated merge tools?

    And on a related line of inquiry, do race conditions every occur on busy projects where by the time you have merged and tested the latest additions to some file, someone has already checked in yet another update to a file you are working on forcing you to do another round of merging and testing?

    Cheers,

    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
    1. Re:Broken builds under concurrent development? by Yunzil · · Score: 2
      As a matter of interest, do projects using CVS find that the builds of software projects get broken under a concurrent development scheme, as changes by others working on the same files may have unforeseen side effects not picked up by the automated merge tools?

      Yes. In fact, we've implemented a couple things at work to alleviate this. Some of the cvs commands have been abstracted into a script. You can't commit changes to the repository unless you put a lock on it first with a new command. Once in a while things still get stomped, but it's happening a lot less frequently now.

    2. Re:Broken builds under concurrent development? by Anonymous Coward · · Score: 1

      1) Yes. We use CVS extensively for reasonably-sized development teams--25-30 people. We often have people who break the build.

      NOTE: Peter Miller's Aegis appears to deal with this specific problem.

      2) Yes. This sort of thing happens periodically, but not in the manner you describe. For individual files, cvs appears to do a good job with concurrency. Problems like this arise when configuration management branches the code and doesn't adequately notify the developers. This results in fixes being checked into the old branch. Unless the developer or cm person is diligent, the new branch *won't* have the fix.

    3. Re:Broken builds under concurrent development? by PhilA · · Score: 1

      You can lock files under CVS if you want to. It requires a few scripts on the server side, but it's all fairly well documented.

      You can also implement advisory locks too...

      --
      nosig
    4. Re:Broken builds under concurrent development? by PhilA · · Score: 1

      additional:

      And on a related line of inquiry, do race conditions every occur on busy projects where by the time you have merged and tested the latest additions to some file, someone has already checked in yet another update to a file you are working on forcing you to do another round of merging and testing?

      Only if 1) Your developers don't talk to each other or 2) Your files don't map to the modular chunks of the system the developers are working on.

      Most of the time, developers are working on separate functionality in separate files; when they overlap, you talk to each other...

      CVS probably implies a build system broken into lots of files along natural system module breaks, but then you probably ought to be doing that anyway...

      --
      nosig
    5. Re:Broken builds under concurrent development? by Yunzil · · Score: 1
      when they overlap, you talk to each other...

      Ha! Would that it were. :-b

    6. Re:Broken builds under concurrent development? by PhilA · · Score: 1
      when they overlap, you talk to each other...
      Ha! Would that it were. :-b

      :-) In an ideal world that is...

      Advisory locks at least stop people unwittingly editing the same file. The paranoid can use mandatory locking...

      --
      nosig
    7. Re:Broken builds under concurrent development? by cmbannan · · Score: 1

      wrt your #1, punish those who break the build. Don't check in what does not build, under penalty of ??? wrt your #2, we treat branches as transient - everything ends up back on the HEAD, except patches to back releases. Then releases are built from the HEAD. These things worked for an 80 member product team

    8. Re:Broken builds under concurrent development? by ghutchis · · Score: 1

      Remember that CVS is a version (or revision) control system. It's not a build environment. So the question is slightly off-topic.

      In answer to your questions:
      a) Generally developers communicate with each other! Since you have a ChangeLog or the cvs logs, if something breaks, you can go find out what's going on. One benefit of CVS is that you can generally easily track down the particular change that broken things and back it out.

      b) Race conditions can occur. But then again, that's why you have such things as a "feature freeze" or a "code freeze" and you can lock files. So either you can do several ways. I tend to prefer designating someone to head the release, calling for a code freeze and then have that one person apply relevant patches.

      -Geoff

    9. Re:Broken builds under concurrent development? by GeekBird · · Score: 1

      wrt your #1, punish those who break the build. Don't check in what does not build, under penalty of ???

      RE#1: A-f*cking-men!! If developers have to check it in somewhere, let them check it in to their personal "scrap" repository! They should check out the project code (built & engr released) into their own workspace, and then work on their file(s). When they have done their changes, they need to build it, and troubleshoot as needed. If there is a new engineering build, they should:

      1. change their CVSROOT to the scrap repository, and check their modified code into their scrap repository (if they're being cranky)
      2. change their CVSROOT to the main project repository, and check out the full current code
      3. copy their modified code over the current (main) code, checking the diff first
      4. try a build a keep working

      Note: this is a rough idea of what all of our engineers do - I'm not a developer, I'm the release engineer. But it's what I do, especially when working on the build system!!

      wrt your #2, we treat branches as transient - everything ends up back on the HEAD, except patches to back releases. Then releases are built from the HEAD.

      RE#2: Whereas, we take "stable" (customer shipped) releases and make branches out of them, with continuing development (feeping creaturism) occuring on the HEAD. That way when we need to do a quick and dirty patch, we develop it on the branch, test it & ship it, then incorporate it back into the HEAD as required.

      But you are quite correct in saying that CVS is not a build system. It merely enables you to work on and build numerous projects at once.

      Also, to learn CVS from bootstrap (and well) on an existing system takes about three months, both Cederqvist and Fogel, and a lot of swearing at sytems, developers, and the clown who did the original repository setup.

      --
      use Sig::Witty;
  9. Why certain chapters were open sourced by webmaven · · Score: 4

    I own this book, and I found it interesting that the chapters that were made available on the net were the chapters concerning technical matters, whereas the chapters I found most interesting, concerning the social aspects of CVS and Open Source projects are only available in the printed version.

    This makes a lot of sense, from the authors perspective (and from ours as users of open source), since technical documentation is what's most desparately needed for many projects.

    But I wonder how difficult it was to convince the publisher of this, who must have wanted to flip the situation around, and only offer the 'soft' information for free.
    --

    --
    The real Webmaven is user ID 27463. I don't rate an imposter, because my ID is such a lame-ass high number.
    1. Re:Why certain chapters were open sourced by bluebomber · · Score: 1
      From another point of view, the "hard" information is mostly just reboiled from the Cq. The "soft" information is the "value add" that the author provided.

      If all you really want is the technical information, you can get all of this from online sources (and print it if you want a hardcopy). The thing that made me buy the book were the chapters on the philosophy of open source project management.

    2. Re:Why certain chapters were open sourced by webmaven · · Score: 2

      I agree, but my point was, how difficult must it have been to convince the publisher of this?
      --

      --
      The real Webmaven is user ID 27463. I don't rate an imposter, because my ID is such a lame-ass high number.
    3. Re:Why certain chapters were open sourced by kfogel · · Score: 2

      I wanted to make the entire book free, but the
      publisher wasn't comfortable with that. However,
      they were enthusiastic about making the CVS-
      specific portions of the book free. In fact,
      they may have suggested it before I did.

      I think the logic was that CVS is free, so the
      documentation about CVS should also be free.
      It was certainly more important to me that the
      CVS portions be free than the rest, although I
      wish the entire thing could have been free.

      Deep down, I think intellectual property is
      a contradiction in terms, but in order to get
      this book published I made a compromise. :-)

      Fortunately, it looks like Coriolis has no reason
      to regret their agreement to release the majority
      of the book for free. Sales are doing well, and
      it's already into reprint. Long live dead trees!

      -K

      --
      http://www.red-bean.com/kfogel
  10. To be blunt, CVS sucks by Ars-Fartsica · · Score: 1
    CVS is one of those tools in unix-land that simply needs to be taken outside and shot (along with "make" and a few others).

    To this day, most usrrs and admins resolve CVS problems by mucking with the /CVSROOT files themselves, and just taking it from scratch. It is incredibly easy to get CVS into a confused state, particularly when removing or moving files.

    Gripe mode off.

    1. Re:To be blunt, CVS sucks by vsync64 · · Score: 1
      To this day, most usrrs and admins resolve CVS problems by mucking with the /CVSROOT files themselves, and just taking it from scratch. It is incredibly easy to get CVS into a confused state, particularly when removing or moving files.

      Um, yeah, and if you happen to think that "rm" stands for "RenaMe", you can also get yourself in trouble. This is kind of a sore subject for me, because a number of people where I work loudly and consistently preach the virtues of supporting user stupidity. "Oh, if they set this environment variable and used this command-line option and delete the temporary file, the button might be an ugly color! Lock it down!"

      At some point, you have to stop trying to protect users from their own stupidity. Especially admins, come to think of it. Anyone who ignores the instructions in the manual (freely available btw) shouldn't be administering anything, let alone the version management system for a multiple-developer project.

      Face it: system administration can be hard work sometimes. Doing anything right can be hard work sometimes. If you don't know how something works, learn! Most any package comes with something, and there's always mailing lists, IRC channels, and newsgroups...

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    2. Re:To be blunt, CVS sucks by Ars-Fartsica · · Score: 1
      If you don't know how something works, learn!

      User education isn't the issue - CVS simply lacks adequate functionality.

      Major source tree cleanups, as another poster has pointed out, are incredibly painful, and typically result in the admin going into /CVSROOT and just tickling the filesystem directly (which is what any type of database should prevent you from having to do).

    3. Re:To be blunt, CVS sucks by Camel+Pilot · · Score: 1

      "make" is one util that needs replacing. The use of \t as deliminator has cost countless hours of troubleshooting.

    4. Re:To be blunt, CVS sucks by EvlG · · Score: 2

      Look into Ant, the XML based build tool from Apache.

      It's still in its infancy, but the idea is solid I think. Just needs to be developed more.

    5. Re:To be blunt, CVS sucks by pohl · · Score: 1

      Anyone who resorts to mucking-around in CVSROOT manually needs to read the FAQ.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    6. Re:To be blunt, CVS sucks by Ars-Fartsica · · Score: 1
      Anyone who resorts to mucking-around in CVSROOT manually needs to read the FAQ

      Will the FAQ tell me why CVS is unable to rename files easily?

    7. Re:To be blunt, CVS sucks by pohl · · Score: 2
      I agree with these criticisms, and that CVS is in dire need of either replacement, or a forking of the CVS codebase. The development mailing list is heavily guarded by a few people who work hard to prevent any progress in the development of CVS, so replacement is probably the answer.

      One feature that I would like to see is the ability to configure the diff algorithm by file type, so that revisioned binary files (images, for instance) can be stored in the repository on a space-efficient manner. PRCS does this with the xdelta library, but I don't know if PRCS allows the use of a line-oriented-text diff algorithm for source files.

      I also find the event hooks in CVS to be lacking. A generalized hook mechanism is needed that has access to both the name of the checked-in file and its contents, with both pre-commit and post-commit triggers, by file name, file type, directory, module, user, and whatever other parameter might be useful. CVS has some of this, but not enough.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    8. Re:To be blunt, CVS sucks by pohl · · Score: 1

      "Easy" is a relative term. Anything is "easy" if you already know how to do it, and if you want to reduce the number of keystrokes involved you can write a script. In general, you just copy the file to the new target name, then do a cvs add of the new file, then rm the old file & do a cvs remove on it. Finally, a cvs commit and you're done. I agree it's not as easy as it could be, but it's not something that requires frobbing the CVSROOT control files directly.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    9. Re:To be blunt, CVS sucks by goetze · · Score: 1

      The problem with this method is that you lose the capability to merge changes made by another developer while you relocated it. All his changes end up in the Attic.

    10. Re:To be blunt, CVS sucks by pfingst · · Score: 1
      So just do what I did and make " " the delimiter instead. Tracking it down in the code takes a bit of detective work, but it's a trivial change.

      BTW, I had to do this because my particular platform doesn't support tabs in text files (seriously!). They all get converted to spaces.

      Mark

    11. Re:To be blunt, CVS sucks by asciitxt · · Score: 1

      But don't you lose the revision history for the file when you do that?

    12. Re:To be blunt, CVS sucks by bbehlen · · Score: 2
      I agree.

      Brian

  11. Where's the online book? by Gill+Bates · · Score: 1
    I tried to view the online version, but I keep getting HTTP 404's.

    Has anyone actually been able to get to it?
    Bad link?
    Slashdotted?

    1. Re:Where's the online book? by Christopher+Cashell · · Score: 1

      It appears that pretty much all the links to the free chapters are currently bad. Since they're all dead, and there's no mention of it on the site, I'm guessing it's due to a mistake. Especially as they were all working a week or two ago.

      However, it's still freely available via anonymous CVS. See http://cvsbook.red-bean.com/anoncvs.html for instructions on getting it. (I just tried it, and it does work)

      The CVS version is the texinfo format, and includes a Makefile to build the alternate formats.

      --
      Topher
  12. Re:CVS is a very serious condition by duhboy · · Score: 1

    This the funniest post I have read in ages, would you people moderate that post up to 6!!!!

    --
    duh!
  13. CVS rocks by ColonelPanic · · Score: 1
    I've used CVS since being converted by an ex-Prisma employee back in '89 at Cray Computer. I think it rocks, especially when compared to the in-house developed tools that I've been forced to use over the years.

    --
    "Skill shows through where genius wears thin." -Wittgenstein || Religion: uniting aviation and architecture.
  14. Re:Flawed by ctran · · Score: 1

    Agreed. I want my work done 5 minutes ago, now I have to deal with a corrupt repository? For CVS, you haven't used WinCSV, have you?

  15. CVS hosting by ctran · · Score: 1

    Is there such a thing?

    1. Re:CVS hosting by rw2 · · Score: 2

      http://sourceforge.net/

    2. Re:CVS hosting by BJuano · · Score: 1

      There is! OpenAvenue, which hosts and sponsors CVS at http://www.cvshome.org, offers CVS hosting as well. Free for public OSS projects.
      //jt
      -------------------
      Community Relations
      OpenAvenue, Inc.
      http://www.openave.net

  16. Title? by QZS4 · · Score: 1

    What's up with the title? I mean, is there any substantial difference between "Development with CVS" and "Open Source Development with CVS"? The process should be the same regardless if it's only in-house or throughout the 'net. Right?

    1. Re:Title? by sammy+baby · · Score: 2

      The author actually includes several chapters which relate specifically to the development of Open Source Software. So here, the distinction is actually relevant.

  17. Somewhat disappointing book by Anonymous Coward · · Score: 4
    Before buying this book, I read that it would be effective for quickly coming up to speed and getting CVS working. This wasn't the case for me.

    First, there's a pretty grievous error in the inetd config line he gives which makes the server not run. I can't remember the entire line but remove the duplicate 'cvs' text.

    Second, although I know it doesn't fit in with the theme of the book, there isn't much in the way of setting up CVS for commercial use. In my case, I want to have CVS controlling both some OS and commercial code. Setting up SSH access, multiple CVS servers, access control, etc are not covered very well, if at all. Unfortunately, these are the same topics the Cederqvist doesn't cover either. I was hoping this book would fill in those gaps but it just doesn't.

    On the upside, the author frequents the cvs newsgroup so you're likely to get book questions answered there (the group is pretty good for questions in general as well).

    1. Re:Somewhat disappointing book by Tim+Pierce · · Score: 3

      First, there's a pretty grievous error in the inetd config line he gives which makes the server not run. I can't remember the entire line but remove the duplicate 'cvs' text.

      That's interesting. What operating system are you running?

      Here's the line that I think you're talking about:

      cvspserver stream tcp nowait root /usr/local/bin/cvs cvs \
      --allow-root=/usr/local/newrepos pserver


      The inetd implementations I'm familiar with would require both "/usr/local/bin/cvs" and "cvs" in that line. The first tells inetd where to find the binary, and the second is the first argument in the command-line invocation. If there are inetds floating around which choke on that line, you should definitely report it as a documentation bug.

      Second, although I know it doesn't fit in with the theme of the book, there isn't much in the way of setting up CVS for commercial use. In my case, I want to have CVS controlling both some OS and commercial code. Setting up SSH access, multiple CVS servers, access control, etc are not covered very well, if at all.

      I will venture a guess that Karl didn't cover those topics because he didn't think it necessary. :-) Setting up SSH access is trivial -- as long as someone has a shell account on the CVS server, they should be able to run "cvs -d myuserid@cvshost:/path/to/repository" to access the remote repository. It did not even occur to me that this needed to be documented.

      If I were setting up a CVS server with projects that needed different levels of access control, I would probably put them into completely different repositories. Put your free code into /path/to/open and your closed code into /path/to/closed. Take away world-read permission and put them under ownership by different groups. Then, in order to view the closed repository, you must be in the closed user group. But you raise a good point that this would be a useful cookbook-style example.

      Disclaimer: I was one of the technical reviewers for the book and so am not objective about its quality. :-)

  18. CVS vs VSS by cd_Csc · · Score: 2
    I am currently a user of Visual Source Safe, but it is a obvious that CVS is much more popular among this community.

    Could somebody please post a summary of the differences between CVS and VSS?

    Also, if I were convinced to switch to CVS, what would the migration process consist of?

    1. Re:CVS vs VSS by Mignon · · Score: 3
      One difference is speed. I don't know the details but I understand the problem is that VSS uses a more chatty protocol. I have an overseas colleague, and he found VSS unusable across a trans-Atlantic link. CVS works fine for him, though.

      Our program is cross-platform (Win32/Solaris); I don't know if VSS clients are available for Solaris (or any non-Windows platform), but a nice thing is that the CVS command-line tools are the same on Unix or Windows. Some of us use WinCVS on Windows. It's even possible to integrate CVS with Developer Studio by customizing some menus. There's a page out there detailing this, if you're willing to search for it. Of course, CVS can be integrated into Emacs on either platform as well.

      One nice thing we use is the webCVS interface, which allows browsing the CVS repository in just about any web browser. One handy feature is its ability to display color diffs of arbitrary revisions.

    2. Re:CVS vs VSS by selectap · · Score: 4
      I've used both before, and here's my take:

      If you're using strictly MS tools and you're not dealing with a lot of files, then VSS should do OK for you. Visual C, VB and family make it very easy to check files in and out of VSS, and it also makes it easy to deploy content to IIS based web sites. (although I know nothing about how secure that is)

      If you're dealing with a large project, I think that it greatly increases the chance of the VSS database corrupting, which to me is one of the biggest flaws and a major reason why I would not use VSS.

      The advantages of CVS are:

      Simple file format eliminates chances of corruption. I've moved our repository to 3 different machines without any problems...I just had to tarball the cvs root directory and move it.

      Support for multiple OS's, including a VSS-like client for windows

      Comes by default with many Linux distributions, so all you have to do is dig up that old 486, put a good size HD on it, and you have instant version control.

      Conflict resolution works just as well as VSS, if not better.

      No license fees. :)

    3. Re:CVS vs VSS by sbeitzel · · Score: 3

      I have used both systems, so I'll comment on my experiences. I haven't administered a CVS repository, so some of my knowledge will be incomplete there.

      The migration process question is easy to answer: when you migrate, you're gonna lose all your history. So when you do, I recommend you burn a CD with your VSS repository on it and archive it on a server somewhere. Then, do a complete checkout of your source tree into a fresh location. From there, do a massive add to your CVS repository and boom, you've got your source migrated over. One thing you may want to do is write a script that will insert an $Id:$ tag in a comment up at the top of each of your source files before they get added; I find it awfully nice to have the revision number right there so that when somebody asks me what version I'm working on, I can tell 'em.

      On the differences, an exhaustive list would be really long. You might take a look at the FAQ for comp.software.config-mgmt as a starting point. In brief, though, CVS has these advantages over VSS:

      • The repository doesn't automatically get corrupted by usage. (VSS does this.)
      • Checking in and out don't get exponentially slower as the repository gets big.
      • There are clients for just about any development platform -- so your Mac HTML/Graphics people don't have to have CodeWarrior and the VSS plugin in order to check in their work.
      • It's free

      Actually, if you can afford the package, I'd suggest looking into Perforce. It's very similar to CVS (including the variety of platforms for which it has clients - although the Mac client is an MPW tool, which is great for programmers but icky for designer types), and it introduces a couple of very nice features: atomic changes (so when you check in a bunch of files, the commit doesn't happen until they're all in) and a really slick use of the filesystem so that with really huge repositories it's still lightning fast.

      --
      Oh, go on, check out my job.
    4. Re:CVS vs VSS by drinkypoo · · Score: 1

      It's one thing to say they don't use VSS; It's another to back it up by telling us what they do use. So, uh, what do they use?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:CVS vs VSS by Bob9113 · · Score: 1

      We chose CVS over VSS for stability and speed. Was on a project that used VSS for 9 months and lost the repository 4 times. Never heard the specific cause (could have been human error), but don't want to risk it. On speed, VSS takes roughly twice as long as CVS. Upside of VSS is NT integration (if you like that sort of thing) and nicer GUI, but source safety is paramount in my mind, with minimizing developer wait-states a close second.

    6. Re:CVS vs VSS by Osram · · Score: 2

      In my mind, the one outstanding difference is that in VSS you have to lock the file before you can can change it. While it is locked, other people cant change it (easily). In CVS, several people can work concurrently on one file. When different developers check in changes of one file, CVS has to try to merge them. This often works, but not always.

      My personal opinion is:
      Use CVS for open source projects. When one developer starts work on a file and then doesn't have time to finish, other people are not hindered.
      For commercial apps I prefer the VSS-style. You know your working hours and your holidays, when you start working on a file, you will usually finish it. If you don't, you can still give it back. If someone needs a file somebody else is working on, its no problem contacting the other person (this might be a problem with open source). I don't say, use VSS. There are many VSS-like programs out there. For example, in my old company (>=7 years ago) we used PVCS, which was already quite nice. In my current job we work with VSS, which is alrightish (we only have 2.5 developers :-)), but we also have had file corruption.

    7. Re:CVS vs VSS by wiliano · · Score: 1

      A couple posts mention that more than one person can not work on a file in VSS... that is not true. Run VSS administrator and look under options. And if there are conflicts because of multiple checkouts, VSS pops up a nice merge tool instead of dumping characters out to your local copy.

    8. Re:CVS vs VSS by sbeitzel · · Score: 3

      in VSS you have to lock the file before you can can change it

      Not necessarily true. When the administrator sets up a VSS database (repository) s/he can enable multiple checkouts, so multiple developers can have concurrent modify access. When this happens then the conflict resolution is the same as in CVS: the second and subsequent checkins have to do a diff to resolve the possiblity of conflicts. The builtin diff tool is pretty cool, but it doesn't let you make decisions in situ. Still, I worked at a shop where there were 5 developers working on the same codebase and the automatic merging worked very well for us. Note that this works fine for things like C, where local changes tend to be locally scoped, but it is lousy for things like HTML or PostScript where local changes tend to have global scope.

      --
      Oh, go on, check out my job.
    9. Re:CVS vs VSS by Ezzelin · · Score: 1

      Both CVS and VSS can work in lock mode or concurrent mode. It's just a matter of defaults: CVS defaults to concurrent, whereas VSS (as everybody else has been saying) defaults to lock mode. While you can lock a file in CVS easily, you can also put a watch on a file, which is probably a better solution. You will then get notified when something happens to the watched file, such as when a developer gets write permission. Then, you can immediately take action without having to be quite so draconian.

    10. Re:CVS vs VSS by danielrall · · Score: 1

      Let's not forget Greg Stein's ViewCVS, a Python rewrite and improvement of WebCVS.

      --
      Daniel Rall
  19. Anyone have feedback on BitKeeper? by nonya · · Score: 1

    BitKeeper is a source management system that claims to be "especially tuned to the needs of the Linux team". It has some interesting features for distributed development. The "trees of repositories" looks particularly useful for open source projects.

    I'm impressed with what I read about BitKeeper, but since CVS does the job for me I've never tried it. Anyone used it?

    You can get more info here

  20. It's a joke, you nitwits! by Andrej+Marjan · · Score: 1

    n/t
    --
    Change is inevitable.

    --
    Change is inevitable.
    Progress is not.
    1. Re:It's a joke, you nitwits! by zombieking · · Score: 1

      It's nice to know that someone still has a sense of humor on slashdot. Even if it wasn't really a funny joke. Thanks.

      --

      -----
      "The only difference between me and a madman is that I'm not mad." - Salvador Dali (1904-1989)
  21. Re:Flawed by CrazyBob · · Score: 1

    Correction: 'Point and Click' Power User ;) CVS and SourceSafe aren't really competing apps. Yes, they have the same general purpose, but they fullfill this in two very different environments. If you're cracking out anything related to these MS buzz words, use SourceSafe. If you're programming in c or Perl or something else in Unix, CVS is by far your best bet.

  22. Damned fine book. by CrazyBob · · Score: 1

    I read this book cover-to-cover a few weeks ago, a definate rarity for me; a lot of times I'm lucky to get to the 2nd chapter before giving up. The author spiced it up pretty good with Open Source anicdotes and human language. I walked away with more than an understanding of how to use CVS.

  23. learning CVS by nthomas · · Score: 3

    The same problems I had with trying to learn Expect, I had trying to learn CVS: lack of good online tutorials & documentation.

    Richard Stallman (a man with whom I disagree on a great many topics) said it best: He had heard so many good things about Perl, and wanted to learn the language, but when he started looking for online tutorials, the ones he found were far and few in between, and not to mention of very low quality. Everybody kept telling him to buy the (O'Reilly) "books", but he wanted online stuff, stuff that just wasn't available.

    When I wanted to learn Expect, I asked around, and posted to the newsgroup, on where would be a good place to learn, everybody replied, "get the Exploring Expect book." When I told them I couldn't afford it, I just got a "tough luck" and a shrug.

    I have been wanting to learn how to use CVS for quite some time now, and I'm sure this book is great for someone that can afford to shell out the $40 bucks for it, but I can't, so can anyone point me to some good docs?


    --
    N. Thomas

    1. Re:learning CVS by slipsuss · · Score: 1

      As the review says, half of the book (the technical chapters) are GPLed and downloadable from http://cvsbook.red-bean.com

    2. Re:learning CVS by Rombuu · · Score: 1

      Richard Stallman (a man with whom I disagree on a great many topics) said it best: He had heard so many good things about Perl, and wanted to learn the language, but when he started looking for online tutorials, the ones he found were far and few in between, and not to mention of very low quality. Everybody kept telling him to buy the (O'Reilly) "books", but he wanted online stuff, stuff that just wasn't available.

      I think the proper "free" response to this is to say.. "What do you want for free?" If you don't like it write your own documentation...

      --

      DrLunch.com The site that tells you what's for lunch!
    3. Re:learning CVS by limbostar · · Score: 1

      Jesus. Richard Stallman can't do "man perl"?

      I spent $40 or whatever on O'Reilly's _Programming Perl_ and while I consider it money well spent, the most consistently referenced chapter (and the only one I can claim to actually need) is Chapter 2, which lists all of the functions that Perl has and uses, which is a direct conversion from the manpage, right down to the typos.

      --
      this is a sig.
    4. Re:learning CVS by gnp · · Score: 1

      Well, if you can afford more like $9 (or cheaper through some discount places like FatBrain), you might consider my forthcoming book (from O'Reilly) the C VS Pocket Reference. Of course, I'm biased, since I'm the author. And, the book is a reference rather than a tutorial, although it does have some basic "primer" type material in the introduction.

      --
      perl -e 'srand(-2091643526); print chr rand 90 for (0..4)'
    5. Re:learning CVS by BJuano · · Score: 1

      You can find some useful information on using CVS on its new home, http://www.cvshome.org/CVS/support. This is mostly information from the original Cyclic and Sourcegear sites but cvshome.org is going under a massive redesign right now. Tell us what you want at the talkback forum and keep checking back for updates.
      //jt
      -------------------
      Community Relations
      OpenAvenue, Inc.
      http://openave.net

    6. Re:learning CVS by Sir+Spank-o-tron · · Score: 1

      i don't know about learning perl from the man pages, but i did learn expect from the man pages.

      --
      -- Spankmeister General
    7. Re:learning CVS by jjn1056 · · Score: 1

      OT, I spent my first year as a perl program with only online docs and code examples. It's definately possible, and very satisfying. I only bought books when I started a new job that gave me an expense account

      --
      Peace, or Not?
  24. Short shrift to BSD? by sammy+baby · · Score: 1

    I acutally did buy a copy of this book, and to the limited degree which I've been able to read it (life? what life?), it's been quite enjoyable. However, I do have one beef with the author.

    In his initial description of what constitutes Open Source, the author describes OSS licenses as falling into one of two broad categories: the GNU Public License, and "everything else". Given the constant flamewars which seem to erupt over "which is really more free," I would have thought that a mention of the BSD license as an alternative was appropriate.

    Is it a critical flaw? Probably not. Anyone interested in OSS enough to purchase this book has probably already heard of the BSD license. But it bothered me to see the GPL presented as the be-all, end-all when there are other licenses with substantial differences and large followings.

    (disclaimer: other than a mild personal preference for the GPL, I have no opinion on the relative worth of either the GPL or BSD license.)

  25. Cervisia (CVS GUI) by eli173 · · Score: 2

    I've found that Cervisia is a _very_ nice GUI frontend for CVS.

    Check out
    http://cervisia.sourceforge.net/

    There is still room for improvement and more features, but it does make dealing with CVS less painful.
    I like the fact that it shows you the commands it is executing so that you can learn as you go.

    eli173

  26. Re:You are kidding.... by arthurs_sidekick · · Score: 1
    Trolling ... GIMP is "wishware" ? What a dork. However, it's a reasonably successful troll, judging by the number of fish in the net.

    I guess you have to add me to that count =)

    --
    "Oh, I hope he doesn't give us halyatchkies," said Heinrich.
  27. Moderators: How is this a troll? by Ars-Fartsica · · Score: 1

    Once again, the /. group-mentality rears its ugly head.

    1. Re:Moderators: How is this a troll? by Camel+Pilot · · Score: 1

      I wish I had not already commented on this thread or I would moderate your post up.

  28. Chatty protocols (was Re:CVS vs VSS) by Jeremi · · Score: 1
    I don't know the details but I understand the problem is that VSS uses a more chatty protocol.

    Speaking of chatty protocols, has anyone noticed the response string that a remote CVS server gives after authenticating a client? If your login is accepted, it sends back "i love you", if it's rejected, you get back "i hate you". I wonder what the story behind that is?

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  29. Re:Flawed by Anonymous Coward · · Score: 1
    If you're programming in c or Perl or something else in Unix, CVS is by far your best bet.

    But why on Earth would anyone want to use Perl for a project which is going to be large enough to require CVS? So much bullsh*t about Perl is spoken on Slashdot and Usenet, and it's starting to annoy me. Here are the facts:

    1. Perl is slow. This fact will become obvious once the Perl program becomes sufficiently large. Compiled languages are the only serious option for coding any non-trivial software.

    2. Perl makes inefficient use of available resources. The interpreted nature of Perl creates a huge overhead, thus wasting processor resources and making your 1GHz Athlon perform like a 486.

    3. Perl is hard to maintain. It is impossible to create weakly-coupled, highly abstracted code in Perl, thus it is also impossible to maintain Perl code on large projects. Object Oriented languages win every time.

    4. Perl is unecessary. There really is no sane reason to use Perl - The argument that Perl is simpler to learn is completely invalid, since any reasonably skilled Perl 'coder' can easily make the step up to C. The sheer inefficiency of Perl means that C and C++ are more suitable than Perl for 99% of programs.

    Please don't moderate this down because it disagrees with your own beliefs about Perl. The truth is, everything I've said can be backed up with facts.

    - Lita Juarez.

  30. Re:Flawed by drinkypoo · · Score: 1

    If you mean WinCVS, it's ass. On Win98, Win2k, and NT4, it managed to sometimes botch perms and sometimes not at my last place of work. This is really fun when you have six people working on a website.

    That said, I can see some real uses for CVS, especially in a web development environment; You can set up a cron on your remote server to periodically do a CVS update. rsync is better at moving files around, but CVS does it all in one package.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  31. Richard Stallman learning perl by jroller · · Score: 1

    Gah. Perl comes with some of the nicest, most complete, and entertaining man pages that I've ever seen in a software package. I don't believe there's a reason to complain about the lack of perl docs.

    I was slightly disappointed when I finally went out and bought one of those O'Reilly books after using perl for a year or two, and found that much of it was pulled straight from the man pages.

    Perhaps old rms was trying 'info perl' instead of 'man perl'.

    -joel

  32. Book's web site fixed now by kfogel · · Score: 1

    Apologies for the broken links at
    cvsbook.red-bean.com, the problem is now fixed.

    -Karl

    --
    http://www.red-bean.com/kfogel
  33. CVs *is* good if... by jezland · · Score: 1

    You don't get hung up on the the word 'open source' and instead use 'distributed development', and avoid getting hung up on your love of VB, you'll find that CVS solves most of the problems that other version control systems can't touch. CVS is not idiot-proof, and is prone to pilot error. It needs to have some solid project management to avoid serious problems. But you know what, if you don't have decent development management, you have bigger problems that your source control solution. Here is why CVS is great: it's small, lightweight, works extremely esily with developers writing on multiple platforms, is amazingly easy to maintain when compared to the extremely cumbersome and slow solutions of other systems. Solutions like ClearCase and VSS require system configurations that take over major portions of both the server and clietn software, and make distributed computing nearly impossible. Have you ever tried setting up ClearCase to work for multiple offices in different states, and engineers who telecommute? It is nearly impossible. With CVS, you set up a repository, set up a pserver port, and blammo, any one that can get behind your firewall can access the source control sytem, from anywhere, with a very limited toolset. And build times are also trastically reduced. Try this sometime: do an export of your files in source control to a flat file system. I did. 20 minutes for about 10,000 odd files (java,xml templates, images and shell scripts) for CVS. About 4 hours for ClearCase. CVS is not the end-all be-all that many source control systems claim to be, but it also doesn't ahve a lot of the baggage that limit development flexibility those other systems have.

  34. Re:Can someone tell me by jezland · · Score: 1

    Yes, CVS will do this. It only does this when you are using reserved checkouts; but it is a configurable option like any other that you set up when you are outlining your development processes.

  35. Check out BitKeeper by John+Ratke · · Score: 1
    How about BitKeeper. I've never used it, but it looks pretty nice. I've been meaning to try it out. It's been in beta for a while. It has lots of GUI tools and support for 'Lines of Development' (LOD). It aims to be the version control system for the Linux kernel. A lofty goal indeed.

    The licensing is a bit wacky, as it's not exactly free.

  36. ATC by KainX · · Score: 2

    Have you ever actually tried controlling air traffic? There's no comparison between ATC and CVS, other than perhaps that they are both TLA's.

    With open source development, you can always take a break. If you turn your eyes away from your code to check the latest news on Slashdot, nobody dies.

    But air traffic control...dammit, man, those planes! They just keep coming and coming! Make them stop!

    --
    Michael Jennings | HPC Systems Engineer, Lawrence Berkeley National Lab | Author, Eterm (eterm.org)
  37. CVS Dogma by wiliano · · Score: 1

    Maybe somebody can explain this to me. I want to get a "non-working" copy of a module. I can do 'cvs export Module'. But if I later want to update my local copy and there are changes in CVS, I get problems and it refuses to do so. I can do 'cvs co Module; cvs release Module' and cvs update works fine.

    And then what if I only want to check out a single file, work on it in the "non-working" directory, and then check it back in. Does CVS force upon you to work with modules by checking out the entire thing?

  38. Um, what were you expecting? by devphil · · Score: 2

    there isn't much in the way of setting up CVS for commercial use [...] I was hoping this book would fill in those gaps but it just doesn't.

    *boggle*
    What part of Open Source Development with CVS did you not understand? Why would anyone expect this book to cover commercial software?

    "Hey, this book is titled Tips for Baking Chocolate-Chip Cookies, so I'll purchase it because I'm hoping it will also cover meatloaf."

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
    1. Re:Um, what were you expecting? by ethereal · · Score: 1

      Open Source and Commercial aren't opposites; mozilla for example is run as both. I don't see why issues of access control and multiple servers wouldn't be germane to a large open-source project as well.

      --

      Your right to not believe: Americans United for Separation of Church and

    2. Re:Um, what were you expecting? by GeekBird · · Score: 1

      *boggle*
      What part of Open Source Development with CVS did you not understand? Why would anyone expect this book to cover commercial software?

      Don't be a dense idiot. CVS is a tool for code and version management. CVS doesn't care whether it's open or proprietary. Both are supported.

      "Hey, this book is titled Tips for Baking Chocolate-Chip Cookies, so I'll purchase it because I'm hoping it will also cover meatloaf."

      Dolt. It's more like "Hey, this book is titled 'How To Get The Most Out Of Your Oven', so it should cover both cookies and meatloaf!"

      --
      use Sig::Witty;
  39. Oh, how magical! by Ranger+Rick · · Score: 1
    I've been trying to get at the online version for 3 days now, and the only link that wasn't broken was the CVS access to it. I have actually been compiling tetex just so I could look at the damn thing, and then suddenly when it's mentioned on Slashdot, the links are back in working order.

    Gaaaah!

    :)

    :wq!

    --

    WWJD? JWRTFM!!!

  40. CVS Freshmeat? by protected · · Score: 1
    CVS is a super product, and I have used it for years on commercial applications. I just wonder why it hasn't been upgraded in so long. CVS users have been on 1.10 for over a year now.

    Even so, it's popularity is clearly growing and deservedly. It is _very_ easy to use, very powerful, and free. There is nothing quite like the feeling of creating a new free build environment instance that works across the hall from the baseline or around the world from it. I have even used CVS to manage source code updates into classified environments.

    Could it be better? You bet. Would I use anything else? Not a chance.

  41. Microsoft probably uses an internal tool called SL by doom · · Score: 2
    Quoth an Anonymous Coward:
    ya, you know at MS they don't even use VSS for there major projects.

    Win2k, Office, etc... no VSS. they don't use CVS either. it's something else, i forget.
    I don't *think* I'm violating any confidentiality agreements by saying this (but don't tell anyone, huh?):

    Microsoft at least used to use an internally developed tool called "SLM" ("shared library management", maybe?). It was command-line oriented, and as I remember it, it did file locking by default (when you have a file "checked out", no one else can until you do a "check in").

    Anyway, Source Safe didn't exist when they started using SLM, and I wouldn't be suprised if the developers just never felt like switching version control software just to be dogfood-compliant.

    (A better question might be, if SLM is so useful, why didn't they ever ship it as a product? My experience with it was that it was kind of balky to use, but I later realized that all source control systems are -- certainly including CVS.)

    But then my only experience with using Source Safe was that the guy administering it couldn't figure out how to give someone permission to check something out. It was a little *too* safe... things would go in, but never come out again. (We went back to using CVS.)

  42. Re:Bah.. by Spruce+Moose · · Score: 1

    Maybe, but clearcase costs $$$$$$$$ and CVS is free. Oh yeah, and the Redhat version of Clearcase refused to install on my Redhat 6.1 machine as I didn't have the text "redhat" in my /etc/issue file. (-:

  43. VSS is Seriously Flawed by Thomas+Wendell · · Score: 1

    Maybe VSS is an OK system for projects where there are very few developers, or only one person per source file, but it's terrible for working on a team project where everyone is competent enough to make changes to the entire source tree.

    Support for multiple people editing the same file was added as an after thought, and it shows. For example, you can't check out a file without updating it first. Of course, if you have to update one file, then you probably have to update them all. This is really annoying if you're not current and need to change another file and not ready to update. Maybe the build is currently broken and you'd like to keep working while things are getting fixed. Or maybe you want to get your stuff working before dealing with the big merge you know you'll have to do when you update.

    VSS also doesn't delete files that have been renamed or removed, so it's a big manual hassle to go through and clean out dead files.

    It's also really frustrating that VSS hides everything in cryptically named files. Suppose you want to know who added or edited a specific line of code? You can't just look at the diff log, you have to manually run diffs between versions until you find the edit.

    Finally, if you're going to complain about command line tools, I don't see how you can like VSS. Its command-line origins are clearly visible. There are many operations that can't be performed via the GUI, you have to drop back to the command line.

    I don't know much about CVS, but I do know that if you think VSS is a good solution, you've never used a good source control system.

  44. You're missing the point (and you're rude). by devphil · · Score: 2


    I know perfectly well what CVS is for. I use it daily. You are responding to the wrong parts of my message (because you feel cool doing so, or something).

    Let me try again. Read carefully. The book is not about "how to use CVS". It is not about "how to apply CVS to whatever you work on". It is not the CVS manual. It is not, repeat NOT, addressing general development issues like CVS does. CVS != this book.

    The book is specifically targeted towards open source development. The first poster's complaint was that the book -- NOT CVS, JUST THE BOOK -- didn't treat proprietary stuff. My point is that the book -- NOT CVS, JUST THE BOOK -- made no claim of treating proprietary topics.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  45. Re:Yoe - Fifthe Poste! by GRAMMERSoft · · Score: 1

    I agree, I'm not much of a troll. Hell, I almost have positive karma!

    But at least I'm not a baboon. :)

    Oh, and BTW, I know how to spell grammar; yes, I am pink, but I am not swollen at the moment; yes, I probably can suck a dick, but I'm afraid I don't want to; and I'm sorry, but I am not into gay porn.

    Now if you'll excuse me, I have some karma to lose and a .sig to change...

    --
    That said, I think it's time I changed my .sig (again)
  46. Visual Source Sabotage by bharlan · · Score: 1

    VSS is great evaluation-ware (better than demo-ware). After using it for half an hour, you'll be convinced that it does everything you need. After you've made the commitment, you'll discover otherwise.

    VSS uses an extremely chatty protocol (good old DCOM), so I find VSS unusable offsite. Latency is terrible. Over ISDN, it takes five minutes to navigate to the proper subfolder, check out a file, and check back in a modified version. Many at my office buy the third-party Source Offsite: their proxy translates into a more sensible protocol for their own client.

    You'll also need a third-party client if you want to build your code on anything but Windows(TM). We must build on NT, Linux, and Solaris, so all our Unix synchronization was scripted by hand, to selectively update from Samba mounted drives. In effect, we've build our own source-control system alongside VSS.

    We've found that the only safe way to synchronize a working copy of a VSS directory is to delete the entire branch of the tree and get a fresh copy. Otherwise, you'll never notice what files others have deleted or what new files you've forgotten to add to the tree. We've had the build break five days in a row for this very reason. When I check out files, I make a mirror copy of the directory under RCS, then use scripts to update VSS. My VSS tree is constantly deleted and refreshed to ensure real synchronization with the rest of the team.

    The problem would be alleviated by changing "working folders" except that working folders do not work in any rational way. You'd like to switch between your polluted copy of a tree and a clean copy to check that your changes are compatible with others' more recent changes. You find that when you switch the working folder at the root of a tree, some sub-folders (sub-directories) remain with the old tree if files are checked out. You then discover that, by default, the same file will check out into one working folder and check in from another working folder. Yet time stamps and diffs make you think you checked in from the folder you put the file into and modified. Only when you delete and get a fresh copy of the tree, do you discover that you checked in the wrong version. To undo the damage, you must visit and reset every directory in the tree. You'll never try to change working folders again. (Everyone on the team tried it once and regretted it.)

    As soon as we reach our next major milestone in August, we plan to switch to CVS. I used Clearcase for years and would also prefer it to VSS.

    --
    (Reality reasserts itself sooner or later.)
  47. I got the point, and it was silly. by GeekBird · · Score: 1

    The book is specifically targeted towards open source development. The first poster's complaint was that the book -- NOT CVS, JUST THE BOOK -- didn't treat proprietary stuff. My point is that the book -- NOT CVS, JUST THE BOOK -- made no claim of treating proprietary topics.

    I'm rude?? You're the person who *boogle*d at why the person complained!

    Let me parse it for you again: The AC complained that the book didn't address proprietary software. You cased on him for expecting the book to, saying it only covered open source. I'm saying that to him and you: a) that the technical matter in the book applies to both open and closed source, and b) that claiming that it only applies to open source is ridiculous! Which is what your little analogy attempted to do.

    The fact is, the book is an invaluable resource for CVS users and administrators, regardless of whether they're working on open or closed source. To claim that it only applies to open source because that's what's in its title is stupid.

    --
    use Sig::Witty;
  48. Remote CVS setup help by XenonOfArcticus · · Score: 1

    We've been using CVS on our Linux server for over a year now to coordinate several on-site and offsite developers on our projects. I can't imagine life without it. It just works. On multiple platforms too!

    My problem: I'd like to give our people the ability to use MacCVS/WinCVS/JCVS as a GUI for CVS usage. We can all plod along with the command-line tools, but let's face it, it gets repetitive, and some of our people aren't big on command-lines-via-telnet.

    Is there a good Remote-CVS-for-complete-idiots guide somewhere? Our firewall is set up sort of tightly, so RSH/SSH is troublesome to get going. The docs for WinCVS and JCVS assume you already have the pserver setup and working, and I can't get even that going. I'm gonna go get this book tonight, maybe it will help. I've already read everything I can find on the web about remote CVS setups.

    --
    -- There is no truth. There is only Perception. To Percieve is to Exist.
  49. Could it be the.. by Mr.+Last+Post · · Score: 1

    ..last post?

    --

    Mr. Last Post