2.7 is a free upgrade for all Cornerstone 2 license holders running Mac OS X 10.6 and 10.7. Please note that 2.7 does not run on Mac OS X 10.5 Leopard.
Compatibility with Subversion 1.7
Cornerstone 2.7 adds full support for Subversion 1.7, including the ability to connect to 1.7 servers and access 1.7-format repositories.
2.7 also provides the ability to upgrade a 1.4-, 1.5- or 1.6-format working copy to the new 1.7 format. However, it is not possible to downgrade a 1.7-format working copy (as is the case with older working copies.)
Beanstalk Added as a Cloud Service Repository Type
Zennaware has partnered with Wildbit to integrate support for their Beanstalk Subversion hosting service into Cornerstone. The Add Repository window’s new Beanstalk cloud service greatly simplifies connecting to a Beanstalk-hosted repository.
The Beanstalk page also provides a Sign Up for a Repository button which enables a user to quickly and easily sign up for a free or trial hosting plan with Beanstalk.
Beanstalk repositories are displayed in the source list using a specific icon enabling easy differentiation from generic http/https/svn/svn+ssh/file repositories.
Improved Support for Certificate-Based Authentication
Version 2.6 and earlier provided limited support for certificate-based authentication with SSL/TLS servers. This support was substantially improved for Cornerstone 2.7.
Subversion is traditionally configured to use PKCS#12 certificate files stored at a location in the file system of the user’s choosing. Earlier versions of Cornerstone respected these settings but would not prompt the user for a certificate file or a password if necessary.
These shortcomings were rectified for 2.7.
Cornerstone now provides full support for using certificates (and their associated private keys) stored in the Mac OS X keychain. This improves on Subversion’s traditional file-based certificate configuration in a number of ways by providing simpler configuration and greater security.
Cornerstone 2.7 can be configured (using the new Certificates preference pane) to reference one or more certificates stored in the keychain. Cornerstone can also import PKCS#12 files into the keychain.
If multiple certificates are configured then Cornerstone will ask for the preferred certificate with the same standard user interface used by Safari and other SSL-aware applications.
See the Configuring Certificate-Based Authentication article in the Cornerstone help book (Help > Cornerstone Help) for more information.
Improved Handling of Invalid SSL Server Certificates
Cornerstone now uses the standard system-provided user interface for asking the user to accept an untrusted server certificate. Certificates accepted permanently by the user are added to the user’s keychain in the same manner as Safari and other SSL-aware applications.
Subversion 1.7 introduces a new HTTP-based protocol that promises improved network performance. 1.7-capable client applications such as Cornerstone will automatically use the newer protocol when connecting to a 1.7 server.
Subversion supports the use of two different client libraries for accessing repositories using the HTTP protocol: Neon and Serf. While the Subversion developers have added support for the newer 1.7 protocol to both these libraries, client applications must use the Serf library to see the maximum performance gains (although Neon users should also see significant performance improvements).
For maximum compatibility, Cornerstone has traditionally used the Neon HTTP library (the Serf library is missing support for certain HTTP features), and this continues to be the case in 2.7. As a result Cornerstone users will not gain the full performance benefits of the 1.7 HTTP protocol.
Log View Filtering Performance
The time taken to render the contents of the log view after changing the selected filter was reduced by up to 60%, resulting in a significantly more responsive user interface.
Improved SSH Handling
Cornerstone’s SSH password prompt handling was improved. This is relevant for working copies checked out using
svn+ssh://that did not include the user’s account name (in the form
svn+ssh://firstname.lastname@example.org/repos) in the repository URL.
In previous versions, Cornerstone would specify the server name (e.g.
example.com) as the location when prompting for a password. This was misleading as the user account for which the password was required was not indicated.
Cornerstone 2.7 now correctly displays the user account that SSH is requesting the password for.
Improved Handling of Temporary Credentials
The way in which Cornerstone manages credentials (usernames, passwords, certificates etc.) was re-written for 2.7. During this process care was taken to enable the user to use Cornerstone without permanently storing their credentials in the keychain or on disk.
Previous versions of Cornerstone could re-prompt for credentials under certain circumstances. 2.7 improves this behavior by prompting a maximum of once for each working copy or repository in the source list.
Multiple Folders are Created as a Single Revision
In Cornerstone 2.6 and earlier, creating a path of folders (or a folder with “branches”, “tags” and “trunk” sub-folders) in the repository browser resulted in multiple revisions: one for each folder created.
Cornerstone 2.7 improves on this behavior by creating all folders in a single revision.
Certificates Specified in Subversion’s Config Files are Ignored
Cornerstone 2.7 can only use certificates stored in the keychain. Support for the traditional method of configuring Subversion to use a PKCS#12 file was intentionally removed.
If you have been using certificate-based authentication in the past then you will need to configure Cornerstone 2.7 to reference the certificate in the keychain.
Background Status Checks Fail for Servers with Untrusted Certificates
Cornerstone no longer automatically accepts untrusted server certificates when performing background status checks to determine repository status displayed in the working copy source list.
Instead, Cornerstone 2.7 will reject untrusted certificates until accepted by the user as part of an interactive operation.
Files Dragged from Finder are Now Copied
Prior to Cornerstone 2.7, dragging an unversioned file from Finder to a working copy initiated a move operation. This behavior was changed for 2.7 and files are now copied instead.
Folder Paths Can’t be Created in 1.4-Format Working Copies
Cornerstone allows a path of folders to be created by specifying multiple path components in the New Folder window. E.g., specifying “Libraries/Core/JSON” will create “Libraries”, “Core” and “JSON” if they don’t exist.
Cornerstone 2.7 improves on the existing functionality by combining the creation of all folders into a single revision when performed directly against a repository (there is no difference in behavior for working copies). This improvement was implemented by switching to a newer Subversion API that is only available in 1.5 and above. A side-effect of this change is that creating a path of folders is no longer supported for 1.4-format working copies. Attempting to create a path of folders will result in an error if any of the parent folders do not already exist.
Cornerstone users with 1.4-format working copies can work around this limitation by:
- creating each required folder with a separate use of the New Folder command, or
- upgrading the working copy to 1.5 format or newer.
Cornerstone is compatible with Mac OS X 10.6 Snow Leopard and 10.7 Lion. Note that 2.7 is not compatible with Mac OS X 10.5 Leopard.
Cornerstone 2.7 is fully backwards-compatible with 1.5 and 2.6. All configuration and settings are transparently migrated to version 2.7 when the new version is run for the first time.
It is important to note, however, that Cornerstone 2.6 and older will not be able to access 1.7-format working copies created by Cornerstone 2.7.
Cornerstone’s configuration files are forward-compatible with 1.5, i.e. you can run versions 1.5, 2.0, 2.1, 2.2, 2.5, 2.6 and 2.7 against the same configuration databases in your
Application Support/Cornerstone folder.
- Use OS-provided certificate viewer with untrusted server SSL certificates. (#138)
- Dropping files from Finder onto working copy should always copy files. (#626)
- Support client side certificate-based authentication. (#703)
- Cornerstone should prompt for SSL client certificate if not configured in .subversion/servers. (#909)
- Cornerstone should use the root certificates located in the Keychain to validate SSL certificates which are not validated by OpenSSL by default. (#926)
- Enhance SSL certificate support by adding a Keychain provider to Cornerstone. (#1002)
- Provide support for SSL certificates that update frequently. (#1083)
- Cornerstone displays an error when attempting to undelete a file located in the root of a working copy. (#1217)
- Cornerstone displays an error when attempting to copy a file from a working copy to a repository, or vice versa. (#1218)
- The “secure connection” icon is displayed incorrectly when in full screen mode. (#1221)
- It should be possible to replace a file in a working copy using a drag and drop move operation. (#1223)
- Compare view can display incorrect log message in annotation (i.e. blame) popup window for lines originating from revision in which the file was first added. (#1231)
- Switch options window should record the source URL when switching such that it is available in the URL field popup menu when switching back. (#1232)
- .prej files are displayed for working copy files with both text and property conflicts. (#1236)
- Cornerstone displays an error when a space character is entered into the server name field in the “Add Repository” window. (#1237)
- Creating a repository folder with “trunk”, “branches” and “tags” subfolders should be done in a single revision. (#1238)
- The repository source list’s resize cursor is visible even if the repository source list is hidden. (#1239)
- Cornerstone doesn’t support version 1.1.6 of the compare tool Kaleidoscope. (#1240)
- Typographic (i.e. “curly”, or “smart”) quotation marks should be used instead of neutral (i.e. “straight”) quotation marks when displaying filenames in text. (#1241)
- Working copy browser displays a depth of “Folder Only” for unversioned files. (#1242)
- The display of a modal window during repository setup could result in the repository being added to the source list even if the connection failed. (#1244)
- External folders located in more than one level of nested unversioned folders are not displayed in the correct location in the working copy browser. (#1245)
- Replaced references to “Made by Sofa Kaleidoscope” with “Black Pixel Kaleidoscope” in help book.
- Certificates preference pane should display an alert when selected certificate file cannot be read. (#1246)
- Repository browser stops refreshing automatically after the repository’s settings have been edited. (#1247)
- The log view does not always display the expected revision range when a revision other than HEAD is displayed in the browser view. (#1248)
- Refreshing the log view didn’t always pick up the latest revisions for the selected file or folder. (#1249)
- Log item summary contains a hanging mid-dot character for revisions committed anonymously. (#1250)
- Cornerstone’s UI blocks while the repository is contacted when refreshing the log view for a file. (#1251)
- Items modified in the repository are also marked as modified locally in the working copy browser when “Show Repository Status” is enabled (Subversion 1.7 only). (#1252)
- Cornerstone crashes when removing a repository from the source list when blame is displayed for a file in the compare view. (#1254)
- Cornerstone displays an error when committing with an external folder selected which has property modifications. (#1255)
- Relocating a working copy results in the repository URL being updated even when the relocate itself fails. (#1256)
- Cornerstone fails to connect to initially connect to a newly-created file repository. (#1257)
- Cornerstone crashes when removing a repository after displaying the repository’s log. (#1258)