Cornerstone 2.7.6 Release Notes

Filed under: Cornerstone,Release Notes — Administrator @ 3:50 am

2.7.6 is a free upgrade for all Cornerstone 2 license holders that fixes issues uncovered since the release of 2.7.

See Cornerstone 2.7 Release Notes for more information on the new features and improvements introduced with 2.7.

2.7.6 runs on Mac OS X 10.6 and 10.7. Please note that 2.7 does not run on Mac OS X 10.5 Leopard.

Improvements

  • 1.7-level Subversion updated to 1.7.4.

Resolved Issues

  • Files with tree conflicts following a merge are not displayed as conflicted in the working copy browser for 1.7 format working copies. (#1308)
  • The “Relocate To…” menu does not use the correct icon for Beanstalk repositories. (#1309)
  • Cornerstone displays an error after displaying an alert for post-commit scripts that exit with code 1. (#1315)
  • Cornerstone does not preserve the commit options when cancelling a commit operation. (#1316)
  • When copying files from another application to a working copy via drag and drop, the file name in the copy popover cannot be edited. (#1317)
  • Cornerstone does not display the license window when the “Register This License” button is clicked in the license information mail. (#1318)
  • When committing just unversioned files, clicking the “Commit Anyway” button in the prompt does nothing. (#1321)

Cornerstone 2.7.5 Release Notes

Filed under: Cornerstone,Release Notes — Administrator @ 1:19 am

2.7.5 is a free upgrade for all Cornerstone 2 license holders that fixes issues uncovered since the release of 2.7.

See Cornerstone 2.7 Release Notes for more information on the new features and improvements introduced with 2.7.

2.7.5 runs on Mac OS X 10.6 and 10.7. Please note that 2.7 does not run on Mac OS X 10.5 Leopard.

Improvements

  • Cornerstone’s support for the deployment of site licenses was improved.

Resolved Issues

  • Cornerstone displays intermittent error messages when connecting to repositories using the svn+ssh protocol. (#1306)

Cornerstone 2.7.4 Release Notes

Filed under: Cornerstone,Release Notes — Administrator @ 9:15 am

2.7.4 is a free upgrade for all Cornerstone 2 license holders that fixes issues uncovered since the release of 2.7.

See Cornerstone 2.7 Release Notes for more information on the new features and improvements introduced with 2.7.

2.7.4 runs on Mac OS X 10.6 and 10.7. Please note that 2.7 does not run on Mac OS X 10.5 Leopard.

Improvements

  • Cornerstone’s acknowledgements and credits documents are now consistent with the copyright and license information of the Apache Subversion project.

Resolved Issues

  • Cornerstone 2.7.3 repeatedly asks the user for permission to access the keychain when running on Mac OS X 10.6. (#1307)

Cornerstone 2.7.3 Release Notes

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

2.7.3 is a free upgrade for all Cornerstone 2 license holders that fixes issues uncovered since the release of 2.7.

See Cornerstone 2.7 Release Notes for more information on the new features and improvements introduced with 2.7.

2.7.3 runs on Mac OS X 10.6 and 10.7. Please note that 2.7 does not run on Mac OS X 10.5 Leopard.

Improvements

  • Cornerstone is now signed with an Apple Developer ID certificate and will run as expected on OS X 10.8 Mountain Lion with the default GateKeeper setting.

Resolved Issues

  • Cornerstone reports the wrong pixel size when comparing images with different dpi settings. (#1253)
  • The FileMerge external compare tool support is broken when Xcode 4.3 is installed. (#1273)
  • Annotations in the compare view’s blame gutter appear fuzzy after jumping to a search match in the displayed text. (#1283)
  • Cornerstone crashes when adding a reference to a certificate that has a private key with access granted to all applications. (#1284)
  • The “Files changed:” label in the “Changes” tab of the timeline view’s inspector incorrectly wraps when insufficient space is available. (#1285)
  • Repository files not included in a 1.7-format sparse working copy are not displayed when “Show Repository Status” is enabled. (#1293)
  • Date, revision and author columns are empty for items added to the repository when “Show Repository Status” is enabled (1.7-format working copies only). (#1295)
  • A folder containing externals may incorrectly be displayed as external when “Show Repository Status” is enabled. (#1296)
  • The foreground color of the browser view’s date column is incorrect for missing/external items when selected. (#1298)
  • The contrast of the text for selected missing/external items in the working copy should be higher when selected. (#1300)
  • Always hide the image information when viewing PDF’s. (#1301)
  • Images are flipped vertically in the compare view when one revision in the revision picker is empty. (#1302)
  • Cornerstone should always prompt before reverting folders that contain changes, even if the revert will not result in data loss. (#1304)

Pricing Changes for Customers in the EU

Filed under: Cornerstone,General,News — Administrator @ 6:52 am

Since the release of Cornerstone 2, prices quoted in the Cornerstone store have not included VAT for customers located in the EU. Instead, VAT has been added to the price during checkout at the rate appropriate for the customer’s region.

As of March 8th 2012, prices quoted in the Cornerstone store include VAT for EU customers in order that prices are consistent with those quoted by Apple in the Mac App Store.

Cornerstone 2.7.2 Release Notes

Filed under: Cornerstone,Release Notes — Administrator @ 8:17 am

2.7.2 is a free upgrade for all Cornerstone 2 license holders that fixes issues uncovered since the release of 2.7.

See Cornerstone 2.7 Release Notes for more information on the new features and improvements introduced with 2.7.

2.7.2 runs on Mac OS X 10.6 and 10.7. Please note that 2.7 does not run on Mac OS X 10.5 Leopard.

Improvements

  • 1.7-level Subversion updated to 1.7.3.

Resolved Issues

  • The “Add to Transcript” button draws an opaque surround when the “Note” window is active. (#1220)
  • The “Un-ignore” command may be incorrectly enabled in some cases for items ignored as a result of Subversion’s global ignore list. (#1267)
  • Cornerstone crashes when deleting a directory in the repository browser for a repository registration that includes the default port. (#1268)
  • Files exported using the timeline view do not have their names formatted as expected when multiple revisions are selected. (#1269)
  • The “Note” window does not have a minimum size. (#1270)
  • The revision picker in the repository browser no longer displays a list of revisions. (#1273)

Cornerstone 2.7.1 Release Notes

Filed under: Cornerstone,Release Notes — Administrator @ 3:19 am

2.7.1 is a free upgrade for all Cornerstone 2 license holders that fixes issues uncovered since the release of 2.7.

See Cornerstone 2.7 Release Notes for more information on the new features and improvements introduced with 2.7.

2.7.1 runs on Mac OS X 10.6 and 10.7. Please note that 2.7 does not run on Mac OS X 10.5 Leopard.

Improvements

  • The help book’s “Configuring Certificate-Based Authentication” article was extended to describe support for storing certificates in keychains other than the login keychain.

Resolved Issues

  • Attempting to copy the URL of a working copy item which is not under version control results in an error. (#1259)
  • A working copy for which the status popover was displayed can’t be emptied from the trash after removal from Cornerstone’s source list. (#1260)
  • A revision field that contains a relative revision (e.g. HEAD) or date does not accept a numeric revision from the pasteboard. (#1261)
  • Typing a date into a revision field results in the date being incorrectly interpreted. (#1262)
  • A working copy for which the commit view’s revision picker was displayed can’t be emptied from the trash after removal from Cornerstone’s source list. (#1263)
  • Under some conditions the trash cannot be emptied after removing a working copy from the source list. (#1264)
  • Cornerstone 2.7 cannot connect to a repository through an SSH tunnel configured to use ChallengeResponseAuthentication instead of PasswordAuthentication. (#1266)

We've Partnered with Beanstalk

Filed under: Cornerstone,General,News — Administrator @ 2:50 am

We’re big fans of Beanstalk. In fact we like them so much we now host all of our production repositories there.

Beanstalk offers top-notch cloud-based version control with great deployment, integration and collaboration features. It also has one of the best user interfaces.

And that got us thinking: if we could integrate one of the leading repository-hosting platforms with the ultimate Subversion client, Mac users around the world would be in for a treat.

So that’s what we did.

The integration makes it super-easy to start using Beanstalk’s Subversion hosting with Cornerstone. If you already have a Beanstalk account just copy the URL from your repository’s info page and Cornerstone will automatically add the information it needs. All you need to do is provide your account details and you’re done.

To celebrate the new partnership, all Beanstalk account holders receive a 10% discount coupon for Cornerstone. Just log into Beanstalk and either create a new repository or visit the repository help page to get your discount code for use in the Cornerstone web store.

Cornerstone 2.7 Release Notes

Filed under: Cornerstone,Release Notes — Administrator @ 4:53 am

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.

New Features

  1. 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.)

  2. 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.

  3. 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.

  4. 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.

Performance Improvements

  1. HTTP Performance

    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.

  2. 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.

Usability Improvements

  1. 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://user@example.com/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.

  2. 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.

  3. 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.

Behavioral Changes

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Compatibility

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.

Resolved Issues

  • 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)

Taking the Time to Get it Right

Filed under: Cornerstone,News — Administrator @ 3:47 am

In October we wrote about our plans to add support for Subversion 1.7 to Cornerstone 2.7. It was our hope that this would be ready by the end of 2011.

Unfortunately this won’t be the case.

We knew that supporting 1.7 would take more work than previous versions. We described it as “disruptive” but we didn’t anticipate just how disruptive it would be.

The Problem: Incompatible APIs, Performance Regression and SQLite

Subversion 1.7 includes a complete re-write of the code that manages working copies. While the Subversion developers have attempted to hide the differences between the old and new implementations they were unfortunately unable to do so with 100% compatibility.

For example, 1.7’s re-implementation of the working copy status API used by Cornerstone is now 10x slower than the same API in Subversion 1.6. It provides the same output, but what previously completed in 200 ms now take over 2 seconds. We don’t think this kind of performance degredation is acceptable and spent some time migrating Cornerstone to use newer and faster APIs.

But the most disruptive change results from Subversion’s use of SQLite.

Cornerstone makes heavy use of threading – almost all interactions with Subversion take place on background threads to prevent the user interface from blocking – and SQLite places strict constraints on how it’s data structures can (or, more accurately can’t) be shared between threads. As a result, certain data structures that could be shared between threads prior to 1.7 (and had worked absolutely fine in 1.3, 1.4, 1.5 and 1.6) now raise errors as soon as they’re accessed from different threads.

The Solution: Building a Platform for Future Development

We came to the conclusion that we would have to re-think certain core aspects of how Cornerstone interacts with Subversion. The constraints introduced by SQLite make it substantially more complicated to use Subversion’s APIs from multiple threads. We ended up having to re-design the way in which key data structures are allocated and managed by Cornerstone.

This has taken a lot of work. We’ve been working on this at full-tilt for the last four months, dedicating all available resources to re-building key areas of the application to serve as a solid foundation for future development.

We’ve also totally re-written Cornerstone’s security stack to enable this new design, and have done so in a way that enables key improvements such as support for certificate-based authentication and temporary (i.e. non-persistent) credentials.

Finally, we’ve also re-thought how Cornerstone should store its credentials and have replaced key areas of the Subversion authentication stack with alternatives that use the Mac OS X keychain.

These are big and worthwhile improvements. And rather than take shortcuts or rush these changes, we’ll be taking the time to get them right.

We now plan to release Cornerstone 2.7 before the end of February 2012.

Thanks for your patience.