Subversion 1.7
Yesterday the Apache project released Subversion 1.7, a major update to our favorite version control system. This new version brings with it some much-requested improvements that will affect the lives of Cornerstone users in a positive way.
The most significant improvements in 1.7 are:
-
Improved Working Copy Metadata Storage
All versions of Subversion prior to 1.7 have stored housekeeping information about a working copy’s contents in hidden
.svn
folders distributed throughout the working copy. While not normally visible, these pesky folders have nonetheless been the cause of issues for users. In particular, moving or removing.svn
folders (or the folders that contain them) with Finder or Terminal could result in Subversion (and Cornerstone by extension) no longer being able to access that working copy.While tools such as Finder and Terminal should still not be used to move and rename working copy items (you should always use Cornerstone or another Subversion app to do so), Subversion should be able to better handle such situations.
So where did the data in the
.svn
folders go? It’s still there, but it’s now stored in a single hidden.svn
folder at the top of your working copy.But what about performance?
The Subversion developers claim that the new storage format should significantly improve performance. However, our own experience doesn’t support this. If anything, our testing shows 1.7 to be slower than 1.6, with real-world working copies being between 30% and 100% slower than 1.6.
The bottom line? While the new metadata format in 1.7 should simplify working copy management – and make it more robust – it won’t necessarily be any faster.
-
Improved HTTP Performance
To be honest, Subversion’s HTTP network performance has always been, ahem, less than stellar, particularly on high-latency networks. If you use a hosted Subversion repository on the other side of the planet, then you’ll be accustomed to 3+ second roundtrip times for even the simplest actions, such as listing the contents of a repository folder or comparing a working copy against the repository. And heavyweight actions such as commits and updates can take much longer.
This poor performance stems from Subversion’s support for the WebDav DeltaV specification. DeltaV’s failure to gain any significant traction meant that the promised inter-operability benefits were never realized, leaving only the overhead of a chatty, complex and inefficient protocol.
1.7 implements a new, simplified HTTP protocol, which promises to reduce the time it takes to perform most common actions. The catch? You’ll need to upgrade your server to 1.7 so that it can speak this new protocol.
If you are interested in finding out more about Subversion 1.7 then we recommend that you take a look at the Subversion 1.7 release notes.
When Will Cornerstone Support 1.7?
We will roll out full support for 1.7 with the release of Cornerstone 2.7, which we plan to release before the end of 2011.
We have been working with 1.7 for quite some time. While 1.7 is not a particularly significant release in terms of end-user features, it is a disruptive release for Cornerstone. Re-writing – re-architecting even – certain aspects of the application to incorporate Subversion 1.7 is going to take some time, but we believe it will be worth the wait.
What About Cornerstone 1.5?
Active development of Cornerstone 1.x ceased with the release of 1.5 in September 2009, over two years ago.
Much water has flowed under the bridge since then, with over 4,000 changes committed to Cornerstone during the development of 2.0 and the subsequent releases of 2.1, 2.2, 2.5 and 2.6. Cornerstone 2 has diverged so far from 1.5 that it’s impossible for us to target both versions simultaneously with the integration of 1.7.
Therefore we will not be adding 1.7 support to Cornerstone 1, instead concentrating our efforts on getting 1.7 support into the hands of Cornerstone 2 users as soon as possible.
If you are still using Cornerstone 1.x and want to enjoy the benefits of Subversion 1.7 support then you will need to upgrade to Cornerstone 2.