Slashdot Mirror


Making Sense of Revision-Control Systems

ChelleChelle writes "During the past half-decade there has been an explosion of creativity in revision-control software, complicating the task of determining which tool to use to track and manage the complexity of a project as it evolves. Today, leaders of teams are faced with a bewildering array of choices ranging from Subversion to the more popular Git and Mercurial. It is important to keep in mind that whether distributed or centralized, all revision-control systems come with a complicated set of trade-offs. Each tool emphasizes a distinct approach to working and collaboration, which in turn influences how the team works. This article outlines how to go about finding the best match between tool and team."

9 of 268 comments (clear)

  1. Git and Mercurial? by capnchicken · · Score: 4, Insightful

    Git and Mercurial are more popular than Subversion? That's the big news to me, with all snarkyness aside. I best be getting out of my bubble.

    --
    A libertarian shat on my carpet once. Claimed the free market would sort it out. -Ford Prefect(8777)
    1. Re:Git and Mercurial? by Vanders · · Score: 3, Insightful

      it would be crazy not to use Mercurial is a new project

      Mercurial is a distributed system, Subversion is centralised. They suit almost totally different workflows and teams. If you're a large group of Open Source developers in different countries and timezones Mercurial may suit you. If you're a small group of developers in the same office doing rapid development, Subversion may be better for you.

    2. Re:Git and Mercurial? by RiotingPacifist · · Score: 3, Insightful

      you can do that with either centralised or distributed systems, i fail to see your point.

      --
      IranAir Flight 655 never forget!
    3. Re:Git and Mercurial? by ckaminski · · Score: 4, Insightful

      coupled with its designers absolute refusal to support deleting contents from the repository

      I don't necessarily disagree with you, but in places I've worked, if we removed code in such a fashion and an audit found out about it, we'd get pummeled. Especially if it was discovered after a public release. It's one thing to ship code copyrighted by someone else, it's something completely different to go about covering up the fact.

      So I'm torn on this "feature."

  2. Re:Perforce by xmundt · · Score: 4, Insightful

    P4 is awesome and works great for huge repos with lots of developers.

    However it is getting stale. I can't think of a single new feature added to it since I started using it in 1999.

    Greetings and Salutations...
              Funny...I tend to think of software more like a truck than a stalk of celery, so, staleness really never popped up on my radar. What new features would add to the capabilities of a package that you describe as "awesome"?
              Not flaming, I am really curious, as I have done some software development myself, and, wonder where the line is between actually adding good functionality to a tool, and "creeping featuritis" that adds bells, whistles and complications, but no real increased usability.
              regards
              dave mundt

    --
    YAB - http://blog.beemandave.com/
  3. Re:Errata by forkazoo · · Score: 3, Insightful

    This statement is incorrect. Subversion requres you to update your working copy before committing whenever you have modified a file that has changed in the repository.

    Yes and no. It is possible to only update/checkin at a certain level in the directory hierarchy, and miss a change to a header outside of the scope you are interested in. You have to be slightly beligerent to get into such a situation, but it can happen.

  4. TortoiseSVN by ImustDIE · · Score: 4, Insightful

    I am a bit jealous of some Git features, but the place I work -- and me for my personal projects -- use SVN for one big reason: TortoiseSVN. It is a great interface to version control and not everyone (probably the majority) who needs to contribute is a programmer, or has any idea about command line interfaces, ssh, branching, merging, etc.

    I am aware of TortoiseGit, but it has not reached a stable release, so it is not up for consideration in a serious environment.

    There are other things to keep in mind too; SVN is much more tailored to our repo structure than Git, so that's a big plus for SVN -- at least for us.

  5. Re:No mention of ClearCase? by Ztream · · Score: 3, Insightful

    I use Subversion on a daily basis, and I believe everything positive you said about ClearCase holds true for Subversion, except point 9. There are some philosophical objections to 9 (you should test the resulting code before committing it anyway), but I don't know if it's a design decision or a missing feature.

    That's not to say that Subversion doesn't have problems of its own though, but using CVS as a representation of the state of version control systems is like judging proprietary software on the basis of Windows 95.

  6. Re:No mention of ClearCase? by ztransform · · Score: 3, Insightful

    Essentially everyone who knows anything about modern version control considers CVS obsolete.

    Clarification: everyone who thinks they know everything about modern version control considers CVS obsolete.

    CVS still has advantages, in my opinion:
    - simple underlying storage structure that any administrator can understand
    - ability to simply administratively repair obscene or damaging check ins (investigate the cvs admin -o command, few other version control systems can do this)
    - simple file numbering scheme

    At the end of the day your needs may be more complex (regular branching, regular directory moves, etc) but in some commercial situations simplicity and ease of administration can be valuable points (and I think often outweighs the perceived benefits of SVN).

    As for Git with it's advanced learning curve of at least a week, sometimes you have not just programmers contributing to a project but front-end designers, template producers, who have never seen a version control system in their life. Subjecting them to Git can be both cruel and potentially uneconomic - particularly if they are all on short term contracts.