bea confidential. | 1 version control for a modern world garrett rooney, senior software engineer...
TRANSCRIPT
BEA Confidential. | 1
Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc.June 2006
BEA Confidential. | 2
Agenda
What is Subversion?Brief historyWhy should you use it?Current feature setNew features in 1.4.xWhat's on the horizon
BEA Confidential. | 3
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 History
CollabNet used CVS as part of its collaborative software suite
Replace CVS, take the good part, fix the rest
CollabNet started Open Source Subversion in 2000
August 2001 – Subversion becomes self-hosting
February 2004 – version 1 released
Current release is 1.3.2 (1.4 coming in July)
Subversion HistoryCollabNet remains primary corporate sponsor
Team of Subversion committers
Host the development environment at tigris.org (on our open source platform: CollabNet Community Edition)
Integrates Subversion in its product line
Subversion growing rapidly. Public Apache servers:
May 2006 > 35000
BEA Confidential. | 6
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
Efficient handling of binary files
Atomic commits
WebDAV support
Versions directories and metadata, not just files
Extensive APIs
Working copy lets you do many things offline
svn status, svn diff
BEA Confidential. | 7
Subversion Compared to Other Systems
Better high end scalability than Perforce
Works well over a network, unlike ClearCase
BEA Confidential. | 8
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. | 9
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
http://conferences.oreillynet.com/cs/os2006/view/e_sess/8400
BEA Confidential. | 10
The Big Picture
Subversion is a layered system
Multiple well defined interfaces
Often with multiple implementations
BEA Confidential. | 11
Current Feature Set
Feature parity with CVS
Directory versioning
Efficient network support
Local status/diffs
Cheap branching/tagging
Language bindings
BEA Confidential. | 12
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. | 13
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. | 14
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. | 15
Support Options
Open Source Community
Mailing lists available from http://subversion.tigris.org/
Support services from CollabNet
Training and Support contracts
Help with migration from legacy system
More about Subversion and services from CollabNet is at:
http://www.collab.net/subversion
BEA Confidential. | 16
Want to try it Out?
BEA CodeShare site has Subversion built right in
Download the client from http://subversion.tigris.org/
BEA Confidential. | 17
http://www.collab.net/subversion