Blog

The Apache Foundation's Subversion Hackathon 2017

Julian Foad on December 7, 2017

The Apache Foundation's Subversion Hackathon is an annual opportunity for Subversion developers to meet in person to hack, talk, invent, fix, and inspire.

Five developers met up in Aachen to review the state of Apache Subversion, come up with solutions, and discuss ideas for new directions.

For volunteer contributors, who may have little time to devote to Subversion usually, the hackathon provides a few days to concentrate on their favourite improvements and fixes, and to bring their ideas together.

I work with the Assembla team to improve Subversion’s support for modern cloud workflows. The hackathon gives me a chance to gather ideas from other developers, bounce my ideas off them and see where they lead, and find new inspirations and enthusiasm.

Stefan Hett personally and voluntarily organized this year's event, and Assembla kindly sponsored it.

The discussion topics are listed on the Hackathon wiki page with some notes.

A Topic of Conversation: View Specs

The participants come from different professional background and have varying levels of experience with SVN. From a gaming company to the IT department of a group of hospitals, it was valuable to have a number of different perspectives and use cases for Subversion represented. This led to a number of interesting discussions.

In particular, there was an animated discussion about “view specs” and ways of managing the sparseness. One idea that was shared was to export a sparseness description from one WC and change another existing WC to match it, or check out a new WC with that same “shape”. The existing command-line svn tools are weak in this area, involving "svn info -R" to discover the depths and multiple "svn update --set-depth" commands to change them, making scripted solutions inefficient.

One participant proposed an efficient solution for the "export" side, discovering and reporting the depths, and wrote a proof-of-concept implementation of it during the event. The “import” side still needs further work to provide an efficient solution. If this were done, then we envision that we could implement variants of the “checkout” and “update” commands that take a "view spec" file as input.

Shelving

The participants discussed the shelving feature and all agreed that it would be valuable. One of the participants mentioned missing the shelving feature when moving to Subversion from Perforce. While shelving will certainly prove useful, there are ways in which it will need to evolve.

For example, the ability to reference a shelved change in a common way, and do more or less all the things with that we can do with a regular modification in the working copy, including committing it directly to the repository, exporting it as a patch file, and viewing it in a side-by-side diff viewer.

The participants agreed that SVN should support, at some level, sending a change to an external code review system such as Rietveld or those provided by Assembla and RhodeCode.

For all of this to be reasonable, we need a degree of commonality in the syntax for referring to one of these “change sets”, whether it currently resides in the WC or a local shelf or a server shelf or a committed revision.

Looking ahead: Releasing Subversion 1.10

The Subversion 1.10 release has been stalled for far too long. How to move Subversion 1.10 forward was high on our priority list.

We reviewed the readiness and decided none of the technical issues are blocking the release process. There are a few tweaks we need; for example, we are not ready to promise future compatibility for the new shelving feature so we need to mark it as “experimental”.

What we need to get the release moving again is a Release Manager to drive it. Stefan Sperling drove some alpha releases at the start of the year, but he and the other volunteers in the project are short of time and there was a gap where there was more or less no-one working exclusively on Subversion either.

I consulted with the Assembla team and we concluded that I can offer to do this in my work time. We know that Subversion 1.10 will add a lot of value to the SVN community. Notable among all the changes expected are a new interactive conflict resolver, wildcard support in path-based authorization, and significant performance enhancements.

Share your thoughts with us

Assembla is a proud driver of SVN and its community. You’re invited to share your thoughts on SVN and how we can continue to improve it in the comments or by email at julian@assembla.com.