Cornerstone 4.2 is now available! Dark mode, full macOS 10.15 support, in-app license key management, and more. Release notes.

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

Release Notes for 1.5.6.22 (v1.5.6)

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

Changes

Improved compatibility with Mac OS X 10.7 Lion.

Cornerstone and Mac OS X 10.7 Lion

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

Mac OS X 10.7 Lion is almost here and we’re really excited about Apple’s new operating system. It brings a number of great features from iOS to the Mac and we’re sure Cornerstone’s users will want to move to Lion as soon as possible.

We have been testing Cornerstone on the various pre-release versions of Mac OS X 10.7 over the past four months.

Cornerstone runs well on Lion but does exhibit a couple of issues, so we’ve been very busy fixing and tweaking the app to ensure that it runs as well on Lion as it does on Snow Leopard.

Cornerstone 2

We want the upgrade to Lion to be as smooth as possible for Cornerstone users, so we planned our next update to coincide with Lion’s release. This new version will bring full Lion compatibility to Cornerstone 2, while still supporting 10.5 Leopard and 10.6 Snow Leopard.

The update has been submitted to Apple for review. We intend to release it simultaneously via the Mac App Store and our own software update once the review process is complete.

We can’t be sure how long this will take, but hope that the update will be available for Lion’s release.

Cornerstone 1.x

We will be releasing a minor update to 1.5 though software update in the coming days. This update solves the biggest issues on Lion, ensuring that Cornerstone is fully-functional.

Some minor cosmetic issues do remain though. You’ll need to upgrade to Cornerstone 2 for the best possible fit and finish when running on Lion!

The Long and Winding Road

Filed under: Cornerstone — Simon @ 3:16 am

Cornerstone’s release to the Mac App Store yesterday marked the end of a 6-month process.

We made a couple of mistakes along the way, so we thought that we’d document some of them in the hope that it might be useful to others intending to submit their apps to the Mac App Store.

The Sitdown

Apple approached us back at the beginning of November to discuss getting Cornerstone into the Mac App Store at launch. They even took the time to meet us in Zurich to help us get started and to answer any technical questions.

We immediately set about registering with the Mac Developer Program and modifying the app to meet Apple’s requirements.

The fruit of these labors has been visible for some time and some users probably noticed that the software update-related preferences were moved to their own preference pane in 2.0.3.

This was in preparation for our first submission to the Mac App Store back in mid-November.

A Little Less Sparkle

Unfortunately Cornerstone was rejected at the beginning of January. Apple’s review guidelines state that an app may not use any installation technology other than the Mac App Store and Cornerstone inadvertently violated that rule.

Cornerstone has historically used Sparkle to check for updates and although we completely removed the Sparkle framework along with all related UI, the app’s .plist file contained a vestigial configuration entry for Cornerstone’s appcast feed.

Lesson learned:

Make absolutely sure that all traces of Sparkle or alternative installation or updating technologies are removed before submitting an app for review.

Obvious in hindsight, but nonetheless easily overlooked.

Info.plist Permissions

Our solution for the Sparkle .plist entries involved using the defaults command-line tool to remove the SUFeedURL entry during the Cornerstone build.

An unfortunate side effect of using the defaults tool is that the Info.plist file is converted from XML to binary format in the process. Luckily we spotted this during testing and implemented a fix: the modified Info.plist file is now converted back to XML using the plutil -convert xml1 command.

What we didn’t expect is that the plutil tool changes the permissions of the output file to be:

-rw-------

Erm, oops! With an Info.plist file like that Cornerstone can only be launched by the person that installed the app. This isn’t a problem for most users but it is for apps installed from the Mac App Store.

Thankfully, Apple’s review procedure caught this issue and Cornerstone was rejected a second time.

Lesson learned:

Test app installation with the installer tool provided by Apple. Be sure to run the tool as an admin user other than yourself.

We should have been doing this but hadn’t done our homework: Apple’s Submitting to the Mac App Store documentation clearly mandates that developers perform this test in advance of submission.

Window Resizing

We were rejected a third time in March. The reason? Resizing the main application window to a very small size resulted in unrecoverable layout issues.

We promptly fixed this in 2.2 by defining a minimum size for the main window. We also improved the collapsing behavior of the inspector to better deal with small window sizes.

Lesson learned:

Test the behavior of your app’s UI when the window is resized to it’s minimum size. If you haven’t defined a minimum size for your app’s window then you should probably consider doing so.

Some might claim that Apple is being overly pedantic, but we disagree. An app’s UI should be predictable at all sizes and fixing this improved the quality of Cornerstone.

In Summary

It’s been a long and winding road. And we’ve only described a couple of the roadblocks we encountered along the way.

There were many other things that we had to do to get Cornerstone into the Mac App Store:

  • Create a build without PPC code
  • Remove the licensing and Sparkle UIs
  • Remove their accompanying frameworks
  • Add Mac App Store receipt verification and authentication
  • Adapt the app’s configuration to meet Mac App Store requirements

The list goes on and on.

But it was worth it. We strive to make excellent Mac software and part of the challenge is providing a user experience consistent with Mac conventions and idioms.

Before January 6th 2011 that meant shipping your app as a .zip file or disk image. Now it means being on the Mac App Store.

Thanks

Finally, we’d like to take this opportunity to thank the guys at Apple that supported us on numerous occasions over the last six months.

We won’t mention any names, but if you’re reading this: Thanks. Your help was very greatly appreciated!

Cornerstone 2 Available on the Mac App Store » Press Release

Filed under: Cornerstone,News,Press Releases — Administrator @ 7:34 am

Mac App Store

ZURICH, Switzerland – April 26th 2011

Zennaware is pleased to announce that Cornerstone, the ultimate Subversion app for Mac OS X is immediately available for purchase on the Mac App Store.

Cornerstone is priced at $59.

Zennaware will also continue to sell Cornerstone direct to customers through the online store on zennaware.com.

About Zennaware

Zennaware is a small independent software vender which develops high-quality applications exclusively for Apple’s Mac line of computers to run on Mac OS X. Zennaware is located in Zurich, Switzerland.

Press Contacts

For press-related questions please contact press@zennaware.com.

Release Notes for 2.2.1

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

2.2.1 is a maintenance release which solves issues uncovered since the release of 2.2.

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

Resolved Issues

# Description
1148 Non-default values for the Subversion global-ignores option are not displayed in the “Global Ignores” field in the Subversion preference pane when the window is opened
1149 Some activities (e.g. commit) which result in errors re-appear in the “ACTIVITIES” area when subsequent operations are started
1150 Inspector fields for standard properties do not revert to display working state when “Revert to Saved” is clicked