Subversion 1.7

Filed under: Cornerstone,News — Administrator @ 6:46 am

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.

Release Notes for 2.6

Filed under: Cornerstone,Release Notes — Administrator @ 2:00 am

2.6 is a free upgrade for all Cornerstone 2 license holders running Mac OS X 10.6 and 10.7. Please note that 2.6 does not run on Mac OS X 10.5 Leopard.

New Features

  1. External Merge Tools Can be Used to Resolve Conflicts in Text Files

    Apple FileMerge, Araxis Merge, Deltopia DeltaWalker, SourceGear DiffMerge and Perforce P4Merge can be used to edit and resolve conflicts in text files. Cornerstone will default to using Apple FileMerge, but the user can choose their preferred tool from the Cornerstone preferences in much the same way as was already possible for external compare tools.

    When resolving conflicts using an external tool, My Changes (i.e. .mine) is treated as the original file (normally displayed on the left) and Latest in Repository (i.e. HEAD) is treated as the modified file (displayed on the right).

    The Last Update file (i.e. BASE) is treated as the common ancestor (displayed between or below the other files) and the results of the merge are saved to the working version.

  2. Full Screen Mode is Supported on 10.7 Lion

    Cornerstone’s main window now supports full screen mode when running on 10.7 Lion.

    A new Enter Full Screen item was added to View menu (key equivalent Cmd+Ctrl+F). The command, which is disabled on 10.6 Snow Leopard, toggles to Exit Full Screen when the main window is in full screen mode.

  3. Full Support Added for File Externals

    Cornerstone has always supported working copies with svn:external folders, and Cornerstone 1.5 improved this support with the addition of the externals editor.

    Cornerstone 2.6 builds on this foundation by adding support for file externals, specifically:

    • The correct status is displayed for file externals in the working copy browser and inspector.
    • A number of issues were fixed that prevented external files from being compared correctly.
    • The externals editor now allows files to be selected from the open panel displayed for the Check out from field (but only from the same repository as the that from which the declaring folder originated).

Performance Improvements

  1. Committing Folders Containing a Large Number of Added Files is Now Significantly Faster

    In previous versions of Cornerstone, committing a large number of added files (e.g. 1,000) resulted in a long pause before the commit view was displayed.

    This has been rectified in Cornerstone 2.6.

  2. Working Copy Refresh Performance was Improved

    The performance of working copy status checks performed whenever Cornerstone performs or detects a change in a working copy was improved by about 20%.

    This may not be noticeable on newer Macs but should be significant on Macs with slower processors.

Usability Improvements

  1. Unversioned items can now be committed when selected

    Previously, the commit command was disabled when an unversioned item was selected. This is no longer the case.

  2. Name field was added to the Repository Status section of the Inspector

    A new Name field was added to the Repository Status section of the Inspector displayed for working copy items. This displays the name of the selected item in the repository, which may differ from the name of the item on the local file system.

  3. Added Copy URL menu alternate to source list’s working copy menu

    Holding down the Option key when the source list’s working copy context menu is displayed causes the Copy Path menu item to be replaced by Copy URL.

    This command can be used to copy the complete URL for the working copy to the clipboard for pasting to another application.

Compatibility

Cornerstone is compatible with Mac OS X 10.6 Snow Leopard and 10.7 Lion. Note that 2.6 is not compatible with Mac OS X 10.5 Leopard.

Cornerstone 2.6 is fully backwards-compatible with 1.5 and 2.5. All configuration and settings are transparently migrated to version 2.6 when the new version is run for the first time.

The Cornerstone 2 configuration databases are forward-compatible with 1.5, i.e. you can run versions 1.5, 2.0, 2.1, 2.2, 2.5 and 2.6 against the same configuration databases in your Application Support/Cornerstone folder.

Resolved Issues

  • It should be possible to open conflicted files in FileMerge to perform a 3-way merge for conflict resolution. (#948)
  • Cornerstone crashes due to a Subversion assert when a server name containing upper case characters is entered in the “Add Repository” window. (#983)
  • Cornerstone’s main window should support full screen mode on 10.7 Lion. (#1183)
  • Information inspector pane incorrectly displays a gutter for the vertical scroller when running on 10.7 Lion. (#1189)
  • Cornerstone is very slow to display the commit view when the selected change set contains a large number of unversioned files. (#1191)
  • The Commit command is disabled when an unversioned file is selected, even if the “Before committing…” preference is set to automatically add unversioned files to the working copy. (#1194)
  • Cornerstone’s externals functionality should be improved to provide full support for individual file externals. (#1195)
  • Renaming or moving an external folder results in an error. The rename and move commands should be disabled for external folders. (#1197)
  • An error is displayed when right-clicking a repository item displayed in the working copy browser that doesn’t exist locally when “Show Repository Status” is enabled. (#1200)
  • The original name of a working copy item in the repository should be visible in the Inspector. (#1209)
  • Layout of the Lock window is irreversibly broken when the window is reduced to a small size. (#1211)
  • Attempting to overwrite a folder under version control (e.g. by dragging a folder onto Cornerstone from Finder) results in an overwrite prompt being repeatedly displayed. (#1212)
  • Pasting file:/// into the Add Repository sheet results in the path popup field displaying “Macintosh HD – (null)” (#1213)