Slashdot Mirror


Performance Tuning Subversion

BlueVoodoo writes "Subversion is one of the few version control systems that can store binary files using a delta algorithm. In this article, senior developer David Bell explains why Subversion's performance suffers when handling binaries and suggests several ways to work around the problem."

8 of 200 comments (clear)

  1. first by Anonymous Coward · · Score: -1, Troll

    first

  2. Goatse! by Anonymous Coward · · Score: -1, Troll

    Goatse!

    Chilly urine!

  3. Utter garbage by Anonymous Coward · · Score: -1, Troll

    Visual SourceSafe destroys all open sores garbage. Subversion is for amateurs.

  4. Di3k by Anonymous Coward · · Score: -1, Troll

    claim that BSD is a and Juliet 40,000 website. Mr. de

  5. Oh thank god by Richard+McBeef · · Score: 0, Troll

    My version control system is so fucking slow. It pisses me off to no end. I mean I'm all like trying to check stuff in and it takes forever. Thank god someone took the time to speed these bitches up.

  6. Re:SVN will not replace CVS (IMO) by mountie · · Score: 0, Troll

    Headline:

    SVN Fixes an implementation flaw of CVS, worsens others, completely ignoring the big picture!

  7. Re:What's wrong with version control? by Anonymous Coward · · Score: -1, Troll

    I mean, is it just me or is revision control software incredibly difficult to use? To put this into context, I've developed software that builds websites with integrated shopping cart, dozens of business features, email integration, domain name, integration, over 100,000 sites built with it, (blah blah blah) but I find revision control HARD.

    Have you considered the possibility that you're just retarded?
  8. Storing binaries in revision control is good ... by Anonymous Coward · · Score: -1, Troll

    ...but storing them in delta format is worthless. I've been a source control and build engineer for over a decade, and yes I store binaries in my repository. But only third-party binaries, like libraries. Generated files, such as libraries built from our source code, do not belong in source control. Store the source, generate the binaries.

    Because disk space is nearly free, storing files in delta format no longer meets the original need, which was to decrease disk usage. But revision control systems were built on delta storage, which is actually a good thing in that syncing your workspace to the repository, or diffing revisions, is easy and quick because the system doesn't need to create the diff or send the entire file. Just send the diffs and apply them to the workspace. In short, a file's revision history is a history of the successive differences, so of course we want to store them as a diff chain.

    But what about your compilers, linkers, and other tools? Store them in revision control? Third-party libraries change rarely enough that we all can afford both the disk space for full copies or successive revisions to be stored, and the time it takes to upload or download the entire package. Tools usually change less frequently. In both cases, I do not trust any revision control system to correctly patch my compiler or other binaries based on what it thinks the diffs are. If there's a bug in the system, how would you know? At least with plain-text files, a human can look at the differences and decide if they are correct.

    And what about binary source files? You know, MS Office files, CHM files, and anything else which is not stored on disk in the same way it's presented in the authoring tool. If for example you store a Word DOC as successive diffs, but not everyone is using the exact same version of Word (on the exact same OS), or everyone is using the same version, but at some point in the file's lifetime that version changes, you're basically screwed. Use revision control for the benefits of centralized storage and labeling, but save yourself a migraine and always save full revisions.

    And now, my recommendation to use Perforce: Not only is it a great product, but the technical support there is the best of any company I've ever dealt with, for any product in any industry, on any planet in any universe.... OK, you get the point. Time for more coffee.