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

Version Control for a Modern World

  • Upload
    feo

  • View
    53

  • Download
    1

Embed Size (px)

DESCRIPTION

Version Control for a Modern World. Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006. Agenda. What is Subversion? Brief history Why should you use it? Current feature set New features in 1.4.x What's on the horizon. What is Subversion?. - PowerPoint PPT Presentation

Citation preview

Page 1: Version Control for a Modern World

BEA Confidential. | 1

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

Page 2: Version Control for a Modern World

BEA Confidential. | 2

AgendaWhat is Subversion?Brief historyWhy should you use it?Current feature setNew features in 1.4.xWhat's on the horizon

Page 3: Version Control for a Modern World

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: Version Control for a Modern World

Subversion History

CollabNet used CVS as part of its collaborative software suiteReplace CVS, take the good part, fix the restCollabNet started Open Source Subversion in 2000 August 2001 – Subversion becomes self-hostingFebruary 2004 – version 1 releasedCurrent release is 1.3.2 (1.4 coming in July)

Page 5: Version Control for a Modern World

Subversion HistoryCollabNet remains primary corporate sponsor

Team of Subversion committersHost 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: Version Control for a Modern World

BEA Confidential. | 6

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

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 offlinesvn status, svn diff

Page 7: Version Control for a Modern World

BEA Confidential. | 7

Subversion Compared to Other Systems

Better high end scalability than PerforceWorks well over a network, unlike ClearCase

Page 8: Version Control for a Modern World

BEA Confidential. | 8

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

Page 9: Version Control for a Modern World

BEA Confidential. | 9

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

http://conferences.oreillynet.com/cs/os2006/view/e_sess/8400

Page 10: Version Control for a Modern World

BEA Confidential. | 10

The Big Picture

Subversion is a layered systemMultiple well defined interfacesOften with multiple implementations

Page 11: Version Control for a Modern World

BEA Confidential. | 11

Current Feature Set

Feature parity with CVSDirectory versioningEfficient network supportLocal status/diffsCheap branching/taggingLanguage bindings

Page 12: Version Control for a Modern World

BEA Confidential. | 12

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

Page 13: Version Control for a Modern World

BEA Confidential. | 13

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

Page 14: Version Control for a Modern World

BEA Confidential. | 14

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

Page 15: Version Control for a Modern World

BEA Confidential. | 15

Support Options

Open Source CommunityMailing lists available from http://subversion.tigris.org/

Support services from CollabNetTraining 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: Version Control for a Modern World

BEA Confidential. | 16

Want to try it Out?

BEA CodeShare site has Subversion built right inDownload the client from http://subversion.tigris.org/

Page 17: Version Control for a Modern World

BEA Confidential. | 17

http://www.collab.net/subversion