Session

BOS42-400: Rebuilding Subversion's Working Copy Library
Presenter: Greg Stein
Breakout Session - Level 400 (Expert)

The Subversion version control system was started nearly 10 years ago. One of its core libraries, the "working copy library", handles the management of the files on the client, retaining metadata and pristine copies of the files in the ".svn" subdirectory. This library is the oldest library within Subversion, and has seen tremendous change over the years to incorporate new features and enhancements. However, in 2008, Greg began an effort to rebuild this library. It had grown too brittle and cumbersome for future development needs. Its performance was a significant problem, especially when compared against other tools such as Git and Mercurial. An architectural overhaul was required, yet the classic APIs could not be changed. This talk will describe the history of the working copy library, how it got to its pre-rewrite state, the architectural and design choices for the new library, and the problems and solutions for bridging between the old and new models. Subversion is developed using the C programming language, so some familiarity will be required to understand some of the examples and discussion.

Greg Stein
Greg is an Open Source developer who currently works on the Subversion version control system. In the past, he has contributed to Python, Apache httpd and APR, WebDAV, ViewVC, any many others. He has been involved with the Apache Software Foundation since its inception in 1999, serving as a Director since 2001, and its Chairman for five years (2002-2007). Greg's most recent job was at Google, until he left at the end of July 2008. He led the engineering efforts of Google's Open Source Program Office, launching the code.google.com website and the Google Summer of Code. Prior to Google, Greg worked at CollabNet, Microsoft, eShop, and Oracle.

Email: gstein@gmail.com
Blog: http://prng.blogspot.com
Twitter: http://twitter.com/gstein