Subversion has rapidly become the version control standard and it is rapidly replacing open source and commercial solutions around the world.
Subversion enables globally distributed software development teams to efficiently version and share source code. The open source Subversion project was started in early 2000 by CollabNet, the primary corporate sponsor of Subversion.

Key Capabilities:
- Versioned directories
- Atomic commits
- Efficient handling of binary files
- Quick branching and tagging
- Directory and file meta data
- Merge tracking
- Natively client-server
- Minimal server and network requirements
- Low admin overhead
- Good security

more at: http://subversion.tigris.org/

Read Submerged, a blog about Subversion at http://blogs.open.collab.net/svn

Journal Entries

Avatar

In spite of videoplayer main language being haxe, ohloh consideres it to be actionscript because the alternate auto-generated as3 code version of it is part of the source tree and it is much bigger. I am considering removing that from the subversion repository. fczuardi — about 1 month ago tags: Subversion,Ohloh,haXe,Web Video Player

Avatar

Fixed up some positions for the pulseaudio project. They moved from subversion to git and the aliases weren't mapped properly. jason — 5 months ago tags: PulseAudio,Subversion,Git

Avatar

tweaking my php code to make better use of ffmpeg and using subversion to make sure I have the newest version of ffmpeg jhalls — 5 months ago tags: PHP,FFmpeg,Subversion,FFmpeg

See All Journal Entries


Ratings & Reviews

Community Rating
4.3/5.0

Based on 811 user ratings.

Your Rating

Click to rate this project.

about 1 year ago Avatar
Why are you still using CVS?

    by GrumpyOldMan

Subversion is what CVS should have been. It's no mystery that projects are moving en masse from CVS to Subversion.

Subversion follows the same client/server model as CVS, but is a strictly better implementation. Subversion's command line tools will feel familiar to anyone comfortable with CVS, and most of the clever accessories like Tortoise and online code browers are available for Subversion. It's worth making the switch for the ... [More] elegant, efficient branching and tagging alone.

All this being said, I think the client/server source control model is on the way out. I highly recommend taking a look at Git or Darcs, which use a decentralized model that doesn't require a central server. [Less]

24 of 34 users found the following review helpful. Was this review helpful to you? |

11 months ago Avatar
Sure it's not edgy, but it's not junk either

    by Rob Heittman

Subversion was chartered specifically to create a drop-in replacement for CVS -- something that worked similarly, but was friendly to the HTTP infrastructure and addressed some key limitations like the ability to version the directory tree structure. It's done what it set out to do, it's reached a stage of maturity and ubiquity, and I've found it to work reliably and well.

Of course most of the interesting work on source control is now ... [More] being done elsewhere, in projects that intentionally aren't carrying any baggage from CVS and before.

I'm sure at some point in the not too distant future, my team will be moving to something like git, because that's indeed the next evolutionary step. Who wouldn't want smaller working copies, faster updates, and better, legacy-free approaches to merge drudgery, etc?

But more integrations and tool support are needed -- as well as working connectors for services like Ohloh, and project hosting at places like Google Code, Sourceforge, etc, before I can fully make the leap to a late-model revision control platform, instead of just dabbling. I'm doing my little bit to push that forward, working on a git integration with our content management platform and bugging my vendors for git support.

Anyway, Subversion has been a good friend at work for about 5 years, and will be for a while longer before we move on ... and I don't feel any need whatsoever to beat it up for not being designed from scratch in the 21st century. We'll move on someday, but we won't go away mad.
[Less]

14 of 15 users found the following review helpful. Was this review helpful to you? |

Links

7 links submitted so far. Submit your own links.

News

Edit RSS feeds.

    Alabama’s Cheaha Mountain

    The year is rapidly slipping by, and I was moderately concerned about
    visiting a state highpoint during the year. Today my fears were soothed
    as I got a chance to visit the top of Alabama: Cheaha Mountain. I was at
    the FSE-16 conference ... [More] Atlanta and made the early morning drive across
    state lines to visit the highpoint. It was a bit chilly, but the leaves
    were nice, and it was good to get out of the hotel for a bit. See the
    trip report for a full account of my trip. [Less]

    Subversion over HTTP: soon with less suck!

    So everyone knows my job at Google is to tech-lead the team responsible
    for our Subversion servers, as part of our larger open-source project
    hosting service. Thus, having come to a reasonable temporary stopping
    point with my previous 20% ... [More] project, I’ve turned to a new 20% project:
    making Subversion itself better.

    Specifically, I want to right a wrong, undo something I’ve felt nasty
    about for years. Subversion’s HTTP protocol is very complicated and
    unintelligible to mere mortals. Honestly, if Greg Stein and I got hit by
    buses, nobody would really understand what’s going on inside mod_dav_svn.
    What’s the backstory here? Basically, we tried to make mod_dav_svn
    implement a reasonable subset of DeltaV, which was a mostly-failed spec
    written long ago to implement Clearcase^H^H^H^H version control over
    HTTP. Eight years later, this extra complexity hasn’t bought us any
    interoperability with other version control systems — just a big headache
    to maintain and a icky performance penalty. The Subversion client, in
    being a “good DeltaV citizen”, isn’t allowed to directly talk about URLs
    that represent revisions, transactions, historical objects, and so on.
    Instead, it has to play dumb and continually issue a series of requests
    to “discover” opaque URLs that represent these concepts. It’s sort of
    like the client playing a formal game of 20 Questions, when it already
    knows the answers.

    So after some chats with Greg Stein and others, I’ve collected ideas on
    how to streamline our existing protocol into something much more simple,
    tight, and comprehensible. Way fewer requests too. You can read our
    evolving design document and send questions/feedback to
    dev@subversion.tigris.org. Subversion 1.6 is planned to be released at
    year’s end, so if we’re lucky we’ll see this new protocol in Subversion
    1.7 next summer.

    Speaking of Subversion 1.6, however: a smaller sort of glastnost is
    happening there as well. In this new spirit of HTTP openness, we’re
    officially ending our policy of “not telling people how to access older
    revisions” over HTTP. If you recall, the Subversion book has always said:

    Q: Can I view older revisions?
    A: Your web browser speaks ordinary HTTP only. That means it knows
    only how to GET public URLs, which represent the latest versions of
    files and directories. [...] To find an older version of a file, a
    client must follow a specific procedure to “discover” the proper URL;
    the procedure involves issuing a series of WebDAV PROPFIND requests
    and understanding DeltaV concepts. This is something your web browser
    simply can’t do.

    I’m here to break the chains! Reveal the lies! RELEASE THE KRAKEN. In
    Subversion 1.6, we’ve gone and implemented an official public query
    syntax for accessing older (revision, path) coordinate pairs:

    http://host/repos/path?r=REV
    http://host/repos/path?p=PEGREV
    http://host/repos/path?p=PEGREV&r=REV

    This query syntax offers the same peg-revision concept that one sees in
    the Subversion commandline client. The first syntax means “start at PATH
    in the latest revision, then follow the object back in time to revision
    REV.” This works even if the object was renamed and exists at a different
    place in the older revision. The second syntax allows one to pinpoint an
    object with no history tracing: just jump to revision PEGREV, and find
    PATH. The third syntax is very much like running “svn subcommand -r REV
    path@PEGREV”: start at PEGREV, find PATH, then trace the object back into
    older revision REV.

    In any case, this means source code browsers and other tools can stop
    using “secret” internal urls to access older objects. [Less]

    And then there were four . . .

    I feel compelled this evening to write a bit. The last couple of months
    have been full of ups and downs. We’ve been so blessed to have grandmas
    here to help take care of us and the support of dear friends here and
    friends and family ... [More] everywhere else. Jonathan’s birth, Hyrum’s
    appendectomy, bishopric calling and travels and just all of us generally
    trying to adjust to Jonathan’s addition has created a little craziness
    around our house.

    Jonathan continues to bless our life everyday as does Hannah. Hannah
    loves her little brother and I’m sure she will have no problem mothering
    him for the rest of his life. She loves to give him hugs and kisses.
    Today she kept wiping the drool off his chin. Jonathan continues to grow
    and look so cute with his double chin. I wait everyday for that first
    real giggle. I think I heard one the other night but it may have been a
    dream.

    Hyrum is out of town again this week but happily for me this his last
    trip for the semester, at least work related travel. He and Ian are
    hatching a trip for over Christmas break, we’ll see what happens with
    that. I sure miss him when he’s gone and so does Hannah. Today she heard
    the wind rustling leaves outside our door and asked if it was daddy. I
    said no and she followed up with Grandpa. She was pretty disappointed
    that neither Daddy nor Grandpa was going to walk in our door.

    We’ve seen the Wrights for the last two weekends and she loves seeing
    them. We are glad they live close enough to see pretty often. We wish we
    could see my parents more often though. We’re feeling pretty lucky for
    having seen them twice this year. Family is a wonderful blessing. We’re
    so lucky to be part of two big wonderful families. We just wish we could
    all live a little closer together. I have siblings in Utah, Idaho, and
    Colorado with my parents in New York and Hyrum’s parents are in Texas
    with siblings in Texas and Utah.

    I’m really looking forward to the holiday season. I love the smells, the
    music and just the general feelings. I love shopping for Christmas
    presents and planning my goodies for the holiday. I bought fabric the
    other day to make a tree skirt. I am really excited. I love creating
    things whether it’s crafts, dresses for Hannah, food or something else. I
    feel intelligent when I figure out how to make a pattern for the project
    I have in mind. These days, an opportunity to use my brain is greatly
    appreciated. I always hated math in school but I have to admit that I use
    it a lot when I am making a pattern. I never thought I’d say that.

    We’re doing well just trying to make it one day at a time. We are loving
    life and dealing with all the excitement and the daily happenings that
    remind us we’re alive and really blessed. I’m glad that my problems are
    potty training our toddler and keeping our infant happy. Those things
    really are pretty simple compared to things other people have to deal
    with. I’m grateful for my husband. I have two beautiful children and the
    opportunity to care for them and love them is such a blessing. God has
    blessed us and for that I am grateful. [Less]

    Subversion Revision Graph

    This past summer, via my role as project owner for the Subclipse project,
    I decided to participate as a mentor in the Google Summer of Code
    program. Summer of Code is a great way to bring some visibility to your
    project as well as build ... [More] relationships with other open source developers.
    One of the first things you have to do when participating in Summer of
    Code as a mentor organization is to come up with some ideas for projects
    that students can work on for the summer. It needs to be something
    interesting enough to attract talented students and at the same time it
    ought to be something where a measurable amount of work can be
    accomplished in just one summer. I came up with a number of ideas, but
    the one I knew someone would go after, and the one I hoped would get
    done, was to add a revision graph feature.

    One of the top requests I hear from new Subversion users is the desire
    for a good revision graph feature. Unfortunately the way that Subversion
    stores information in its repository is not conducive to providing a
    feature like this. Specifically, Subversion does not currently track
    "copy-to" information. It can tell you the history of a given item and
    trace that history back through all of the places it was "copied-from",
    but for any given path/revision pair it cannot tell you if it has been
    copied to another location. This is an essential feature to create a
    proper revision graph, so in order to draw a decent graph, you pretty
    much need to have the entire history of the repository available so that
    you can construct the "copy-to" information yourself. Performance would
    be terrible if you had to get this history every time, so a good local
    cache of the information is essential. This is a fairly challenging
    engineering task and therefore was one that the existing Subclipse team
    was unlikely to ever find the time to do. At the same time, it was a
    great task for a motivated student. Combined with the ability to
    visualize the information in cool ways via the rich graphical library
    that Eclipse provides, I knew we would attract some interest.

    We were fortunate enough to attract a great student, Alberto Gimeno. He
    dove right into the task when the Summer of Code program started and did
    a great job delivering the feature. I was hoping we would come out of
    this with some interesting code that someone else might want to pick up
    and finish, but Alberto was able to drive this feature to a point that it
    was nearly ready to ship when the summer ended. We have just spent a few
    months adding some Eclipse-polish to it and integrating it into
    Subclipse. Today we release it, and this is what a simple graph looks
    like:

    [IMAGE]

    Notice that the graph is capable of showing merge information when used
    with Subversion 1.5. It also contains a number of nice features made
    available via the Eclipse Graphical Editing Framework. Namely, the
    ability to zoom in/out, export to an image file as well as the ability to
    navigate a large graph via the Outline view.

    This feature will be included in an upcoming release of the CollabNet
    Desktop - Eclipse Edition. You can get it today via the "dev-builds"
    update site for the CollabNet Desktop. Download information for the
    CollabNet Desktop can be found at the project home here.

    Additional details on the revision graph feature can be found at the
    Subclipse site.

    I would like to close by once again thanking Alberto for the work he did
    on this feature. I look forward to his continued involvement in this
    feature and the Subclipse project. I would also thank Google for running
    Summer of Code and including Subclipse in the program for 2008. [Less]

    Subversion Revision Graph

Read all Subversion articles…

Download Page
449 downloads

Who uses Subversion?

BRIMIL_01 G. Jay Kerns David kylan Shlomi Fish fshy00 Daniel Ribeiro jfontan giohappy borbus and stefanrhro

Who contributes to Subversion?

Karl Fogel C. Michael Pilato Daniel Rall Ben Collins-Sussman Hyrum Wright ehuelsmann Lieven Govaerts Garrett Rooney gstein kou pburba David Glasser kameshj breser clkao XelaRellum
I'm a contributor

Who manages Subversion?

Daniel Rall
I'm a manager

Where in the world?



Related Projects by Tags

AnkhSVN, Cvs2Svn, Mercurial, SVK, SVNKit


People who use Subversion also use:


Project Cost

This calculator estimates how much it would cost to hire a team to write this project from scratch. More »
Include
Codebase 383,109
Effort (est.) 101 Person Years
Avg. Salary $ year
$ 5,557,762