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.

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)

Release Notes for 2.5.2

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

2.5.2 is a maintenance release which solves issues uncovered since the release of 2.5.

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

Resolved Issues

  • Issue tracking numbers are not formatted as URLs in history view for working copy files checked out using a URL that differs from the repository used to define the number rules. (#640)
  • It should be possible to define user properties that include “svn” in the prefix e.g. tsvn:autoprops. (#1192)
  • Open panel exhibits visual artifacts in the lower corners on Mac OS X 10.7 Lion. (#1198)
  • Revision numbers are parsed incorrectly on Macs configured to use commas as decimal point separators (e.g. in Germany) (#1201)
  • Revision numbers are not formatted using the thousand separator as specified by the user’s “Language and Text” system preferences (#1206)

Release notes for 2.5.1

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

2.5.1 is a maintenance release which solves issues uncovered since the release of 2.5.

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

Resolved Issues

# Description
1176 Icons in the Preferences window’s external compare tool menu are not updated when an application is installed or uninstalled
1177 “Open in Terminal” doesn’t open a Terminal window on 10.7 Lion if Terminal was not already running
1178 Switch option window exhibits visual artifacts in the lower corners on Mac OS X 10.7 Lion
1182 “Edit > Select All” is disabled in working copy and repository browser views

August Discount

Filed under: Cornerstone,News — Administrator @ 1:32 am

We are excited to announce that we will be discounting Cornerstone 2 from the standard price of $59 to just $39 in August. The offer will be valid from August 1st to August 31st.

Please note that the following restrictions apply:

  • Full Licenses Only

    The discount only applies to full licenses. The pricing remains the same for upgrade licenses.

  • Volume Discounts

    We are not offering volume discounts on full Cornerstone 2 licenses while this offer is valid. Volume discounts remain in effect for upgrade licenses.

  • Other Discounts and Offers

    We are also not offering student or non-profit discounts on Cornerstone 2 licenses while this offer is valid. However, student and non-profit discounts are still available for upgrade licenses.

    Other offers valid during August 2011 are also limited to upgrade licenses.

All Good Things Must Come to an End

Filed under: Cornerstone,News — Administrator @ 9:12 am

It is our policy to support the current and previous versions of OS X in any given release. For example, Cornerstone versions 1.0-1.1 supported 10.4 Tiger & 10.5 Leopard, while 2.0-2.2 supported 10.5 Leopard & 10.6 Snow Leopard.

1.5 and 2.5 were exceptions to this rule. Both were released on the cusp of a new Mac OS X version and provided simultaneous support for three versions of OS X: 10.4-10.6 with 1.5 and 10.5-10.7 with 2.5.

We believe that this policy represents a good compromise between supporting older operating system versions and simultaneously allowing us to migrate to newer tools and keep Cornerstone up-to-date. Unfortunately, it can’t be achieved without leaving something behind.

So, now that 10.7 Lion is here we will be making the next step by dropping support for 10.5 Leopard in the next 2.x update. As a consequence, we will also be dropping support for Macs with PowerPC processors.

We believe that very few Cornerstone users will be impacted by this change. Currently less than 3% of visitors to zennaware.com are running 10.5 Leopard and we think this number will decrease very rapidly as 10.7 Lion is adopted (already almost 30% of visitors are running 10.7 Lion).

However, we do understand that some users will continue to need a version of Cornerstone that runs on 10.5 Leopard. For this reason we will be making 2.5.x available for download from the Cornerstone support page, in the same way as we do with 1.5.

We will continue to support Leopard with 2.5.x maintenance updates up until the release of the next 2.x update.

Future versions of Cornerstone will be Intel-only and will be better for it — removing the PowerPC code means smaller downloads and potentially faster launch times — but we can’t help feeling a little nostalgic.

Leaving the PowerPC behind marks the end of an era.

So long PPC. So long Mac OS X 10.5 Leopard.

uDevGames 2011

Filed under: Cornerstone,News — Administrator @ 4:56 am

We’re really exited to announce that Zennaware is sponsoring this year’s uDevGames contest.

There is a great selection of prizes available and the lucky winner will win a 5-user license for Cornerstone 2!

Other fantastic prizes include BBEdit and Yojimbo from Bare Bones, Reason from Propellerhead and OmniFocus and OmniGraffle from Omni Group.

What is uDevGames? In their own words:

The uDevGames contest is iDevGames’ unique grass-roots game creation contest, established in 2001 to encourage Macintosh game development, and to recognize the best and most innovative developers in the community.

We think it’s a great idea and are proud to be a part of it in our own small way.

Check out the uDevGames site for more information.

Release Notes for 2.5

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

2.5 is a free upgrade for all Cornerstone 2 license holders.

New Features

  1. Fully compatible with Mac OS X 10.7 Lion

    In addition to 10.5 Leopard and 10.6 Snow Leopard, Cornerstone 2.5 now adds full support for Mac OS X 10.7 Lion.

    Cornerstone’s user interface was also tweaked for Lion. Certain user interface elements are rendered differently under Lion for consistency with the operating system’s UI conventions. (#1169)

  2. Inspector’s Properties tab now shows property modifications

    The Inspector’s Properties tab now displays small pop-up buttons for properties which have been modified, i.e. that have a value that differs from the BASE revision.

    Clicking the pop-up button reveals a menu that currently contains a single item: Revert to Last Update. Selecting Revert to Last Update functions as you would expect: it replaces the value in the property’s field with that from the BASE revision.

    Clicking the Save Changes button at the bottom of the Inspector saves the reverted value back to Subversion.

    Note that these improvements also fully support multiple selection, enabling you to see and revert property modifications for multiple files at once. (#1087)

  3. Significantly improved support for commit scripts

    Cornerstone has been able to run user-defined scripts after a commit since version 1.1. Cornerstone 2.5 builds on this by adding support for running scripts before a commit as well.

    In total, Cornerstone now supports running scripts at 3 different points during the commit process:

    1. Prepare Scripts

      Prepare scripts are run during the commit preparation phase that starts when the user selects Commit from the menu or toolbar and ends with the display of the commit view to the user.

      Prepare scripts can be used to make modifications to the working copy before a commit is initiated. For example, a shell script might use the ditto command to archive a package-format document to a Zip file that is under version control, thus circumventing issues with .svn folders in packages.

      Cornerstone will pick up modifications made to the working copy by a prepare script and update the candidate list displayed in the commit view accordingly.

      Prepare scripts can be run in two different ways: once for the entire working copy, or once for each candidate item.

      A single application-wide prepare script may be specified in Cornerstone’s Working Copies preference pane.

    2. Pre-Commit Scripts

      Pre-commit scripts are run immediately after the user clicks Commit Changes in the commit view.

      As with prepare scripts, pre-commit scripts can either be run once for the entire working copy or once for each checked item in the commit view.

      Pre-commit scripts are configured in the commit view and are stored per working copy.

    3. Post-Commit Scripts

      Post-commit scripts (as previously supported since Cornerstone 1.1) are run after the Subversion commit operation completes successfully. Post-commit scripts are not run if no files are committed or the commit operation fails.

      Cornerstone’s post-commit script support was improved in Cornerstone 2.5 to enable the same two modes supported by prepare and pre-commit scripts: scripts can be run once per working copy or once per committed item.

      The default mode remains once per working copy for backward compatibility with previous versions.

    All of the above script types support the following formats:

    • AppleScript
    • Perl
    • Python
    • Unix Shell Script
    • Automator Action

    Why would you want to run a script at commit time? Real-world examples include:

    • Zipping up unpacked package-format documents (prepare script).

    • Validating a working copy’s contents, e.g. ensuring that temporary debugging code such as NSLog is removed (prepare script).

    • Re-generating image thumbnails for storage as custom properties for files selected in the commit view (pre-commit script).

    • Setting or modifying Subversion properties on working copy files and folders (prepare or pre-commit script).

    • Copying the log message for the commit to the clipboard (post-commit script).

    • Appending the log message for the commit to a README file (post-commit script).

    • Informing team members about the commit via email (post-commit script).

    The Cornerstone help book (Help > Cornerstone Help) contains a new section on commit actions that includes a number of example scripts to help get you started.

    (#686)

Performance Improvements

  1. Performance when switching from between views in the externals window was improved

    Cornerstone 2.2 and earlier exhibited a slight delay when switching from the Definition List view to Property Text view in the externals window. This was most noticeable for svn:externals properties that contain a large number of external definitions.

    Cornerstone 2.5 contains performance improvements such that switching is now immediate when the window’s contents have not been modified.

Usability Improvements

  1. Streamlined source list

    Cornerstone’s source list (or sidebar) was streamlined to reduce visual clutter and to improve the visual coherence of the list’s working copy, repository and activity panes.

    The separator between the working copy and repository panes was also removed. The size of the repository pane can now be changed by dragging the header directly.

  2. Working copy option icons were improved

    The icons displayed in the option toggle buttons at the bottom of the working copy browser were improved.

    The new icons are more informative (particularly the icons for Show Repository Status and Show Contents of Externals) and exhibit consistent size and weight. The icons also utilize more negative space resulting in ‘lighter’ icons providing less potential for distraction.

  3. Import now supports importing multiple files

    Prior to 2.5, Cornerstone could only import a single file or folder in a single import operation. This restriction was removed in Cornerstone 2.5 which can now import multiple files and folders in a single import. This applies both when using the Import command and when dragging items from Finder.

    Subversion is still limited to single-file imports, but Cornerstone works around this limitation by performing multiple import operations in sequence. While the user will only be prompted for a log message once, it is important to realize that a unique revision will nonetheless be created for each item imported.

    Some import options (e.g. importing with a different name, checking out after import) are not supported when importing multiple items.

    (#305, #1074)

  4. Source list can how be hidden

    Cornerstone’s source list can now be hidden (and re-displayed) using the new Hide Source List and Show Source List commands in the View menu (key equivalent Cmd+Option+S).

    Cornerstone’s status bar also contains a new button that toggles visibility of the source list.

    Hiding the source list is a useful way to increase the screen area available to views such as the compare view without having to resize the application’s window. (#508)

  5. Padlock icon displayed in window title bar for secure connections

    Cornerstone now displays a padlock icon in the main window’s title bar for repositories and working copies that connect using https or tunnel the svn protocol through SSH (i.e. svn+ssh).

    The padlock is not displayed for connections using SASL because Cornerstone is unable to determine a) that SASL is being used, and b) whether the mechanism negotiated by the client and server provides data confidentiality through encryption.

    The padlock is also not displayed for svn connections using custom tunnels.

  6. Preference added to optionally clear log message after committing

    The Clear log message after commit preference was added to the Working Copies pane of the preferences window.

    Enabling this option prevents Cornerstone from retaining the previously-entered log message and suggesting it as the default when the commit view is displayed for the next commit.

    This behavior is disabled by default for compatibility with previous versions of Cornerstone. (#1160)

  7. Preference added to control whether empty log messages are allowed

    Cornerstone 2.5 allows you to control whether empty log messages are permitted when committing.

    The new preference — Allow commits with empty log messages — results in a prompt when disabled if the commit view’s log message field is empty when Commit Changes is clicked.

    This option is disabled by default meaning that Cornerstone does not allow commits with empty log messages. This represents a change in behavior from previous versions of Cornerstone.

  8. Activity pane now provides more detailed information on commit progress

    In previous versions of Cornerstone the user had to switch to the transcript view to see information on the progress of a commit operation. There was also no indication of how much of the commit operation was already complete.

    Cornerstone 2.5 includes the following improvements to provide more feedback on a commit operation’s progress:

    1. A textual description of each step of the commit process is diplayed in the Activity pane.

    2. Pie chart-style progress information is displayed in the Activity pane for multi-file commit operations.

    (#1164)

  9. Button added to activity pane for switching to transcript

    The Activity pane now contains a button that shows the transcript for the current activity. When clicked, the relevant working copy/repository is selected in the source list and the item’s transcript is displayed. (#1041)

  10. Columns in the repository and working copy browser views can now be hidden

    Right-clicking the header area of the browser’s outline view now displays a context menu containing a list of the view’s columns. The menu can be used to toggle the columns’ visibility.

    Like column ordering, visibility is saved between application sessions and restored when Cornerstone is restarted. (#642)

  11. Match Text… command added to Filter menu

    The View > Filter menu now has a new command: Match Text… that sets focus to the view’s text filter field. This command is supported by the following views and windows:

    • Working copy browser
    • Repository browser
    • Log view
    • Externals editor

    The key equivalent for View > Filter > Match Text… is Cmd+Option+F.

    (#1166)

  12. Chase Output option removed from Transcript menu

    Previous versions of Cornerstone provided the Chase Output option to enable the user to control whether the transcript view automatically scrolled to display newly-added entries.

    Both the menu item and the corresponding button at the bottom of the transcript view were removed in version 2.5.

    Cornerstone now automatically determines whether to scroll based on whether the last entry was previously visible. This behavior is more intuitive and is consistent with other applications such as Xcode and Terminal.

  13. Text can be copied from revision fields in read-only externals editors

    Externals editors opened directly from the repository browser are read-only. In previous versions of Cornerstone, the editor’s revision fields were disabled. As a result, revision text could not be copied out of these fields.

    The externals editor was improved in Cornerstone 2.5 to allow text to be copied from revision fields even when the editor is read-only.

Compatibility

  1. Mac OS X 10.5 Leopard, 10.6 Snow Leopard and 10.7 Lion

    Cornerstone 2.5 is compatible with Mac OS X 10.5 Leopard, 10.6 Snow Leopard and 10.7 Lion.

    Both Intel and PowerPC processors are supported on Leopard. Only Intel processors are supported on Snow Leopard and Lion.

Compatibility

Backwards Compatibility

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

Forwards Compatibility

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 and 2.5 against the same configuration databases in your Application Support/Cornerstone folder.

Issues Resolved in Cornerstone 2.5

# Description
305 Only one file/directory can be dragged from Finder to repository for import
508 Add function to toggle the visibility of the source list
642 Allow user to hide and display columns in the working copy and repository browsers
686 Add support for client-side pre-commit scripts
1041 Add a “Transcript” button to the activity area to switch to the transcript view
1087 Inspector should indicate which of the displayed properties have been modified
1074 Allow the user to select multiple folders/files in the File Import window when importing folders/files into a repository
1151 Import sheet does not hide path popover when the sheet is dismissed
1152 Cornerstone crashes when switching between the Definition List and Property Text views in the Externals window when a revision field with a value of “Latest in Repository” is first responder
1155 Externals document is marked as modified when a numeric revision field loses first responder status
1156 Cornerstone displays an error when dragging an external definition into an externals window that already contains an identical definition
1160 Add an application preference for clearing log messages after a commit
1164 Activity area should provide more information on the progress of commit operations
1165 Changing the sort order of the repository browser before the initial contents have been loaded results in an error
1166 Add keyboard key equivalent for making the search/filter field first responder
1169 Improve compatibility and UI consistency with Mac OS X 10.7 Lion
1172 First-level items in the source list are not indented correctly
1173 Switching to timeline view displays an error if a filter was previously selected but no value specified
1174 Changing height of the source list’s repository pane can cause visual artifacts in the working copy pane under certain circumstances
1175 Pressing ‘escape’ in the license window with a registered license should dismiss window, not reset the window’s contents