subversion version control for a modern world jeremy whitlock june 2006
DESCRIPTION
Subversion Version Control for a Modern World Jeremy Whitlock June 2006. AGENDA. What is Subversion? Why should you use it? Current feature set New features in 1.4.x What's on the horizon. What is Subversion?. Historically, the de-facto standard in open source version control is CVS - PowerPoint PPT PresentationTRANSCRIPT
BEA Confidential. | 1
Subversion
Version Control for a Modern World
Jeremy Whitlock
June 2006
BEA Confidential. | 2
AGENDA
What is Subversion?Why 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 takes the good parts of CVS, and fixes the rest
BEA Confidential. | 4
Subversion versus CVS
Keeps the general workflow, and most of the commandsTotally 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 filesWorking copy lets you do many things offline
svn status
svn diff
BEA Confidential. | 5
Subversion Compared to Other Systems
Better high end scalability than PerforceWorks well over a network, unlike ClearCase
BEA Confidential. | 6
Subversion for Java Development
Many features are particularly useful for Java developersFiles and directories can be renamed without losing historyYou can actually delete a directory, unlike CVSIntegrated into numerous IDEs
Eclipse
Netbeans
IDEA
Oracle JDeveloper
Java bindings let you write code that uses Subversion's libraries
BEA Confidential. | 7
From a Developer's Perspective
Subversion is designed to be extensibleA layered systemMultiple places you can hook into things
I'm giving a 3 hour tutorial about this stuff at OSCON
BEA Confidential. | 8
BEA Confidential. | 9
Current Feature Set
Feature parity with CVSDirectory versioningEfficient network supportLocal status/diffsCheap branching/taggingLanguage bindings
BEA Confidential. | 10
New in 1.4.x
svnsync/replay for repository mirroringdiff/merge/blame can now ignore whitespace/eol style changessvnserve runs as a service on Win32BIG performance gains on working copy library
Driven by big projects like GCC
New svndiff1 delta format, more space efficient thanks to zlibBDB 4.4 support, more reliableNew ra_serf DAV client implementation (experimental)svn diff --summarizeBug fixes...
BEA Confidential. | 11
Current Release Line - 1.3.x
Added path based authz for svnserveImproved logging for mod_dav_svnmod_dav_svn speedupsWay better python and ruby bindingsClient and server performance improvementsBug fixes...
BEA Confidential. | 12
In the Future...
Atomic RenamesCurrently rename == move + delete
Loses information
Working on real rename operation in the filesystem layer
Merge TrackingAvoid repeated merges
Efficiently find out what's been merged into what branch
Both of these are in progress on development branches
BEA Confidential. | 13
Public mod_dav_svn Instances on the Internet
BEA Confidential. | 14
Want to try it Out?
BEA CodeShare site has Subversion built right inDownload the client from http://subversion.tigris.org/