Subversion_Webinar by isbangee


Version Control for a Modern World

Jeremy Whitlock

BEA Confidential. | 1

What is Subversion? ● Why should you use it? ● Current feature set ● New features in 1.4.x ● What's on the horizon
BEA Confidential. | 2

What is Subversion?

Historically, the de-facto standard in open source version control is CVS
Provides a great model for distributed teams Non-locking development keeps people from getting in each other's way


But CVS has problems...
Evolved over time, not designed for the modern world Feels like the whole thing is duct taped together Inefficient Lacks many features you expect in a modern system


Subversion takes the good parts of CVS, and fixes the rest

BEA Confidential. | 3

Subversion versus CVS
Keeps the general workflow, and most of the commands Totally rebuilt from the ground up for a modern world
Networking thought of from the beginning Streams data instead of keeping it in memory Clever repository design that makes tagging and branching very cheap

Versions directories and metadata, not just files Working copy lets you do many things offline
svn status svn diff

BEA Confidential. | 4

Subversion Compared to Other Systems
Better high end scalability than Perforce Works well over a network, unlike ClearCase

BEA Confidential. | 5

Subversion for Java Development
Many features are particularly useful for Java developers Files and directories can be renamed without losing history You can actually delete a directory, unlike CVS Integrated into numerous IDEs
Eclipse Netbeans IDEA Oracle JDeveloper

Java bindings let you write code that uses Subversion's libraries

BEA Confidential. | 6

From a Developer's Perspective
Subversion is designed to be extensible A layered system Multiple places you can hook into things
I'm giving a 3 hour tutorial about this stuff at OSCON

BEA Confidential. | 7

BEA Confidential. | 8

Current Feature Set
Feature parity with CVS Directory versioning Efficient network support Local status/diffs Cheap branching/tagging Language bindings

BEA Confidential. | 9

New in 1.4.x
svnsync/replay for repository mirroring diff/merge/blame can now ignore whitespace/eol style changes svnserve runs as a service on Win32 BIG performance gains on working copy library
Driven by big projects like GCC

New svndiff1 delta format, more space efficient thanks to zlib BDB 4.4 support, more reliable New ra_serf DAV client implementation (experimental) svn diff --summarize Bug fixes...

BEA Confidential. | 10

Current Release Line - 1.3.x
Added path based authz for svnserve Improved logging for mod_dav_svn mod_dav_svn speedups Way better python and ruby bindings Client and server performance improvements Bug fixes...

BEA Confidential. | 11

In the Future...
Atomic Renames
Currently rename == move + delete Loses information Working on real rename operation in the filesystem layer

Merge Tracking
Avoid repeated merges Efficiently find out what's been merged into what branch

Both of these are in progress on development branches

BEA Confidential. | 12

Public mod_dav_svn Instances on the Internet

BEA Confidential. | 13

Want to try it Out?
BEA CodeShare site has Subversion built right in Download the client from

BEA Confidential. | 14

To top