bea confidential. | 1 version control for a modern world garrett rooney, senior software engineer...

17
BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

Upload: dale-marshall

Post on 30-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

BEA Confidential. | 1

Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc.June 2006

Page 2: 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

Page 3: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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

Page 4: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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)

Page 5: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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

Page 6: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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

Page 7: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

BEA Confidential. | 7

Subversion Compared to Other Systems

Better high end scalability than Perforce

Works well over a network, unlike ClearCase

Page 8: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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

Page 9: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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

Page 10: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

BEA Confidential. | 10

The Big Picture

Subversion is a layered system

Multiple well defined interfaces

Often with multiple implementations

Page 11: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

BEA Confidential. | 11

Current Feature Set

Feature parity with CVS

Directory versioning

Efficient network support

Local status/diffs

Cheap branching/tagging

Language bindings

Page 12: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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...

Page 13: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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...

Page 14: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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

Page 15: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

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

Page 16: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

BEA Confidential. | 16

Want to try it Out?

BEA CodeShare site has Subversion built right in

Download the client from http://subversion.tigris.org/

Page 17: BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006

BEA Confidential. | 17

http://www.collab.net/subversion