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

Designing an Icon in Record Time

Filed under: Cornerstone — Lawrence @ 6:25 am

Or: How we spent 2 weeks on a single icon for Cornerstone 2.

The icons used in Cornerstone 2 were never originally conceived as a complete set but came into existence gradually, pretty much at the same time as the feature set itself. The brief to design an icon for the newly added Branching functionality came somewhat late in the day when it had to fit into an existing icon set which comprised of the Merge, Update and Commit icons.

Packages that Branch

Branching Packages

The first step was to try and reuse the blue and red package metaphor for ‘changes’ as originally used in the Update and Commit icons and apply it to the context of branching. The result was 2 packages connected by a metallic ‘branch’ or conduit, with one package of changes extending away or branching off from the other. Not too bad for a first attempt.


Although icon design is not a ‘one design fits all sizes’ exercise we could not, even with extensive tinkering, optimize the icon for 32px. We tried various configurations of the 2 packages with the blue package placed above then below the red package and vice-versa. We also tried altering the shadows and highlights but still couldn’t get the level of definition we needed. The conduit had to be completely unambiguous for the metaphor to work and in the end we couldn’t help feeling that with this approach we were trying too hard to push the package concept where it just didn’t belong.

An Idea too Far?

Package colored leaves

Another way to main a consistent style apart from reusing metaphors and drawing technique is of course through color scheme. Moving away from reusing the package metaphor we decided on a more direct approach and came up with the idea of using leaves and their natural association with branching.


The color scheme translated well, especially with the edge highlights from the Update, Commit and Branch icons being used for the leaves’ veins. In fact we thought it looked so good that we were convinced it was more or less the final draft.

It was only after some time that it began to vex us. In fact several months passed as we continued development on Cornerstone 2 before realizing that the leaves were just not going to cut it. We decided that using them to represent branches which in turn represented branch functionality was one conceptual leap too far. Not only that but the leaves lacked the perspective shared by the Update, Commit and Merge icons.

Wood for the Trees

How about using Branches to represent Branches?

Now this sounds really crazy but we thought we’d give it a go. We’d use the color and perspective from the Update, Commit and Branch icons and apply it to the most familiar branching metaphor we could think of: the branching of the stem of a plant. Again the colors of the leaves’ veins would be based on the highlight colors used in the leaf icon but be bolder and drawn to indicate a fatter, rounder  more succulent leaf, much like an aloe vera plant.


Even after extensive retouching we couldn’t get the veins of the leaves to scale well and we wanted more than the shape of the leaf to indicate it’s purpose. By designing a more stylized leaf whereby the rib of the leaf is sharply recessed and blends seamlessly with the stem  (via the petiole for you biology buffs) we were able to achieve the level of definition at 32px that we were looking for.


As you can see this required some touching up and additional highlights but we were really pleased with the end result.

Try, Try again

Lessons Learned

Clearly icon design is not always, but can be, a highly iterative process. It took us nearly 2 weeks to decide on the final draft and while we’re really happy with the end result, we struggled at times to come up with a satisfying image that we thought users would easily understand.

When designing an icon that has to fit into an existing set it pays to remember that reusing a metaphor is not the only way to achieve consistency. Color scheme, perspective and drawing style, used in the right proportions (together with a good dollop of perseverance) can be just as important.

Cornerstone 2 in Numbers

Filed under: Cornerstone — Simon @ 4:53 am

There are positives and negatives to developing a client for an established system like Subversion.

One of the negatives is that some people assume it doesn’t take much to develop a Subversion client and once in a while we receive mail suggesting that Cornerstone is expensive at $59.

After all, how difficult can it be? It’s just a Subversion client, right?

Anyone who has ever done serious UI development knows differently. Designing and implementing graphical user interfaces is challenging at the best of times but particularly so when you take a complex system like Subversion and try to make it accessible to both new users and Subversion veterans alike.

We recently took some time to reflect on Cornerstone 2 development, including how far we’ve come since both Cornerstone 1.5 in October 2009 and the initial release of Cornerstone 1.0 in July 2008. Part of this period of introspection involved gathering some data on the Cornerstone development process.

We think these numbers tell an interesting story. On the one hand they illustrate how demanding user interface development can be. But they also demonstrate just how much effort we invest into making Cornerstone as good as it can possibly be.

Build System

Cornerstone 2 is a 64-bit Cocoa application developed with Xcode. It is comprised of numerous bundles and frameworks, targeting a number of different CPU architectures and operating system versions.

Xcode Projects 19
Frameworks 15
Loadable Bundles 17
Helper Applications 1
CPU Architectures 3 (PPC, x86, x86_64)
Operating System Versions 2 (Mac OS X 10.5 & 10.6)
Build Time (Release Build) ~10 minutes

The above build time does not include the various versions of Subversion included with Cornerstone.

Source Code

Cornerstone is primarily written in Objective-C. It also contains a couple of C++ classes and a handful of C functions.

Here is a breakdown of the amount of code in Cornerstone:

Files 2,116
Lines of Code 181,000
Lines of Comments 91,000

These figures were generated using cloc. Third-party libraries and frameworks were not included. Unit tests were also not included.

Subversion by Comparison

We thought it would be interesting to compare these figures against Subversion itself. Subversion is written almost exclusively in C. The figures (excluding unit tests and language bindings) are:

Files 462
Lines of Code 180,000
Lines of Comments 65,000

These figures were taken from Subversion 1.6.12 and include the svn, svnadmin and svnsync command-line tools as well as the mod_dav_svn Apache module (but not the dependencies such as APR, Neon, Serf and SQLite etc.). SWIG language bindings (e.g. for Python) are also not included.

We thought these numbers are particularly interesting as they show that Cornerstone 2 contains roughly the same amount of code as Subversion itself.

Structural Details

We did some further analysis to determine how Cornerstone is structured. We knew that Cornerstone is a fairly large project, but the sheer number of structural elements (classes, methods etc.) surprised us nonetheless.

Objective-C Classes & Categories 1,037
Class Methods 1,261
Instance Methods 12,180
Average Methods per Class 12.9
Average Lines per Method 13.5

More than 1,000 classes with over 13,000 methods! That’s a lot of code!

Version Control Statistics

Here are some figures on the number of revisions committed to our development repository over various periods of the project.

Revisions Committed up to 1.0 3,358
Revisions Committed 1.0 – 1.1 1,406
Revisions Committed 1.1 – 1.5 2,265
Revisions Committed 1.5 – 2.0 2,189
Total Revisions Committed 9,218

Those 9,218 revisions were committed between February 2007 and October 2010. That makes an average of 48.5 revisions per week, or almost 10 revisions per weekday.

Summary

Cornerstone is a fairly large project. Not huge (we’ve worked on much bigger), but pretty substantial nonetheless.

We wanted to provide some numbers to quantify this and hope these figures provide some insight into the scale of development effort that goes into Cornerstone.

A Walk in the Park. Taking a look back at one of the visuals created for Cornerstone 1.5.

Filed under: Cornerstone — Lawrence @ 4:06 am

For the release of Cornerstone 1.5 we wanted to design a set of marketing visuals that we hoped would be compelling. To achieve this lofty goal we convinced ourselves that we needed a new software application and so ended up purchasing Luxology’s Modo in the hope that it would inspire us (and just because we love 3D graphics).

The first task was to recreate the Cornerstone logo in 3D. Modo is a pretty heavyweight application and the learning curve for creating even simple shapes is pretty steep but after a fair bit of tinkering we nailed it. The most frustrating part was getting the boolean operations that ‘cut’ the ‘S’ shape out of the cornerstone to work properly.

After further tinkering we stumbled across Modo’s support for replicators and the ability to create lifelike fur materials. We thought these were superb and ended up applying them to our new pristine 3D logo with some really pleasing results.

In fact we thought it was so cool we tried to justify using it by associating it with various slogans such as ‘Cornerstone 1.5. It’s furry good’. Or ‘Cornerstone 1.5. Cuddly version control’.

None of these really worked, as we’re sure you agree!

Now we’re not the type of guys that give up too easily and obsessing about it further opened our eyes to a new type of fur: grass! Now grass is basically green fur, but what that meant was that we could now create a living, breathing miniature world out of our Cornerstone logo. The cornerstone block itself would be a garden or park and the ‘S’ would represent a path through the grass.

Adding the geometries for the figures, bin (or trash can), sign post, bench and tree along with the path texture and environment mapping really brought the scene to life. To enhance the miniature nature of the scene we applied a shallow depth of field or ’tilt-shift’ effect to the final render in post processing.

For version 1.5 we ended up using the slogan ‘Cornerstone 1.5. Finely crafted version control for the Mac.’ but for the sake of this article and because it’s my personal favorite I’ve updated the visual with the slogan you can see below.

A higher resolution version can be found here.

Release Notes for 2.0.3

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

2.0.3 is a maintenance release which solves issues uncovered since the release of 2.0.

2.0.3 is a recommended update for all users running 2.0.

Resolved Issues

# Description
1010 The path type option (relative or absolute) has no effect when saving differences as a patch while the compare view is active. The option should be disabled and relative paths should always be used in the output file
1014 Cornerstone crashes after switch to the merge view for 1.4-format working copies checked out using the svn:// protocol
1015 Synchronization merging is not supported by Subversion 1.4 and should be disabled for 1.4 format working copies
1018 Software update-related preferences should be moved to a dedicated preference pane
1020 Exposé detects the compare view’s ‘Loading…’ bezel window resulting in incorrect Exposé layout
1022 Cornerstone crashes when a commit as part of a repository move/copy operation fails due to a blocking pre-commit hook

Release Notes for 2.0.2

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

2.0.2 is a maintenance release which solves issues uncovered since the release of 2.0.

2.0.2 is a recommended update for all users running 2.0.

Resolved Issues

# Description
985 Resizing the main window to be smaller than the content in the default content view results in layout issues
987 Cornerstone raises an error when clicking ‘Show Contents’ for an empty text file
988 Path popover flickers if displayed when scrolling vertically in an externals window
991 Change Codesion banner text from ‘Cohesion in Code Control’ to ‘Cloud Services’
992 Add syntax highlighting support for the Lua programming language
994 Path popover in externals window is incorrectly redisplayed when scrolled back into view after previously being hidden
995 Path popover is incorrectly displayed when typing into a path field which has been scrolled out of view
996 Timeline’s popover tooltip is not hidden if the escape key is pressed to exit the view
997 Merge dry run errors (such as cancellations) that result from user interaction should not be written to the system log
998 Vertical scroll position of log message field in timeline popover tooltip is not always reset when switching between revisions
1001 The file browser’s search field drop down menu contains just a separator when no searches have been defined
1003 Disable auto-completion in the log message sheet for repository changes
1004 Cornerstone hangs when parsing LaTeX files which use the “\left[” or “\right[” commands
1005 Refreshing log view opened for a repository file or folder results in a “The folder is not a Subversion working copy” error
1006 Refreshing log view for working copy folder unnecessarily contacts repository resulting in the application blocking for a short time

Release Notes for 2.0.1

Filed under: Cornerstone,Release Notes — Administrator @ 12:42 am

2.0.1 is a maintenance release which solves high-priority issues uncovered since the release of 2.0.

2.0.1 is a recommended update for all users running 2.0.

Resolved Issues

# Description
989 An error occurs or Cornerstone crashes when registering license information on recent Macs with “Include anonymous system information” checked
990 Cornerstone fails to start on some Mac OS X 10.5.8 installations

Release Notes for 2.0

Filed under: Cornerstone,Release Notes — Administrator @ 1:49 pm

Important

Cornerstone 2 does not support Mac OS X 10.4 Tiger.

Do not upgrade to version 2 if you are running Cornerstone on Tiger.

New Features

  1. Merge functions added

    Cornerstone 2 adds a new merge view for merging between branches. The merge view supports four different types of merges which can be selected using the buttons at the top of the view:

    • Synchronize Branch
    • The synchronize branch merge type merges all changes made on the source branch (usually trunk) into the target branch (usually a feature branch). This is generally appropriate when synchronizing a feature branch with the changes made by other team members against the project’s trunk.

    • Reintegrate Branch
    • The reintegrate branch merge type merges all changes made on the source branch (using a temporary feature branch) into the target branch (usually trunk). This is generally useful when reintegrating the changes for a feature when the feature was developed in parallel to the rest of the project on a separate branch.

    • Cherrypick Changes
    • The cherrypicking merge type allows a set of revisions to be merged from one branch to another. This is particularly useful when back-merging bug fixes and minor changes from trunk to a maintenance branch for a previous release.

      The cherrypicking options GUI includes a new revision range set control which allows sets of revisions to be easily specified. It also conveniently displays which revisions have already been merged from the source branch.

    • Advanced Merge
    • The advanced merge type allows the differences between any two revisions of any two branches to be compared and applied to a third branch.

  2. Text diff view now supports blame annotations

    Blame support was added to the text diff view. Enabling annotations for a text file (or multiple files when comparing) results in annotation bars being displayed which describe the author and relative age of each revision which contributed to the file’s current state, with the width of the section’s bar indicating the relative age of those lines and the color identifying the revision’s author.

    Pointing the mouse at an annotation bar causes a callout to be displayed which shows log information for the associated lines. This information includes the author’s name, the commit date and the revision number. Clicking to select a bar expands the callout to display the revision’s log message.

    Clicking a revision’s annotation bar highlights all lines changed in that revision for the entire file, with markers displayed in the diff view’s vertical scroller allowing the user to gain a quick overview of the changes made in any one revision.

    In addition, statistics for the file are displayed in a new HUD-style panel, which provides additional blame-related information. This includes:

    • Legend

      A legend displaying the color used for each of the file’s authors along with the percentage of the file’s contents which the authors have each contributed and icons indicating who contributed to the file recently (i.e. within one month of the file’s last committed modification).

      This makes it extremely easy to determine who is primarily responsible for a file (based on percentage contributed) as well as who has been working on the file recently.

    • Revision Timeline

      The legend also includes a timeline which plots the file’s revisions (i.e. the revisions of the contributions from which the file’s current contents are composed) against the file’s set of current authors. The result is a two-dimensional chart which provides a visual overview of who has contributed the file’s current contents over time.

      The points on the timeline can be clicked to select all lines contributed with a particular revision.

    • Summary Information

      Information about the file’s earliest and latest revisions, including the revision number and date.

    (#292)

  3. Text diff view supports editing of differences

    Differences shown in the compare view can be copied from left-to-right or right-to-left if either of the files displayed is WORKING. This is useful for example when reverting individual edits to their BASE equivalents, or when reverting sections of a file back to a previous (i.e. BASE) state.

    Once reverted to the original version, edits can be undone either by clicking the edit button again or by undoing the action using the standard Edit > Undo and Edit > Redo functions.

    The ability to revert individual edits in a modified file compliments the existing file revert function found in pre-2.0 versions of Cornerstone. (#443)

  4. Tagging and branching functions added

    Version 1.5 and earlier provided full support for tagging and branching by option-dragging files or folders in the repository browser to copy them.

    This functionality is still available in Cornerstone 2, but was augmented by two new functions which add a simple user interface for creating tags and branches.

    Selecting Tag… or Branch… from the File menu displays an option window which allows the user to specify the name of the tag/branch and the folder it will be created in. The source revision can also be specified.

    In both cases Cornerstone will try to locate the closest related tags or branches folder and suggest that as the default location. (#134, #709)

  5. Text diff view now highlights intraline differences

    The text diff view was extended to highlight the intraline differences between the left and right versions being compared.

    Intraline differences are displayed by default but can be turned off using the new Show Line Differences option in the Compare menu. (#446)

  6. New option enables invisible characters to be displayed in text diff view

    The new Compare > Show Invisibles function allows the user to toggle the display of space, tab, left tab, newline and page break characters in the text diff view.

    Combined with the text diff view’s new ability to highlight intraline differences, this makes comparing whitespace changes signitificantly easier than in previous versions of Cornerstone.

    Enabling Show Invisibles does have a minor impact on text diff rendering performance. For this reason the option is not enabled by default. (#931, #932)

  7. Find function added to text diff view

    The text in the diff view can now be searched using the new find bar which is displayed using the standard Edit > Find… menu item (key equivalent Cmd+F).

    The find bar allows the user to specify whether the left and/or right files should be searched, as well as how the text specified by the user should be matched (i.e. whole string, substring match at start or end of word, etc.). (#145)

  8. Pending repository update summary is shown as badge in working copy source list

    The number of pending repository updates (i.e. the number of changes committed to the repository but not yet updated in the working copy) is now shown as part of the summary badge in the working copy source list.

    Cornerstone monitors changes in repository status and updates the badge on a low priority background thread to minimize additional load.

    Repository monitoring can be disabled if necessary with the new Show repository change summary in source list setting in the Working Copy preference pane. (#652)

  9. Working copy changes are displayed in a badge in the Dock

    Cornerstone can now display the working copy change summary in a badge on the application icon in the Dock.

    A new setting in the General preferences allows the user to select from the following behaviors:

    1. Show the total changes for all working copies
    2. Show the changes for the selected working copy
    3. Do not show a badge in the Dock

    A badge is not shown when no changes are found.

    By default Cornerstone shows the total number of changes for all working copies. (#13)

  10. Add Repository window provides improved support for connecting to hosted repositories

    The Add Repository window now contains a new Cloud Service repository type which simplifies connecting to select cloud hosting providers.

    Zennaware has partnered with Codesion (formerly CVSDude) to provide Cornerstone’s first cloud service integration. The Codesion cloud service page greatly simplifies connecting to a Codesion-hosted repository by requiring only organization, project and account information from the user.

    The Codesion window also provides Sign Up for a Repository button which allows a user to quickly and easily sign up for a free or trial hosting plan with Codesion.

  11. Log View was improved

    The log view now provides more context information when viewing the log for working copy items. Specifically, the item’s working version is highlighted in the log, as are newer revisions committed since the item was last updated. (#969)

    A filter (Newer) was added to the log view to make it easy to focus in on those revisions which are newer than the working version.

    In addition, revisions since the last update (i.e. newer revisions) now have an Update button. Pressing this button updates the selected item (i.e. the file or folder which was selected before entering the Log View) to the specified revision. (#972)

  12. Support added for Perforce’s P4Merge and Sofa’s Kaleidoscope

    Cornerstone now includes integrated support for using Perforce’s P4Merge and Sofa’s Kaleidoscope as external compare tools. (#927, #939)

  13. 64-bit support added

    Cornerstone 1.5 shipped as a 2-way universal binary, with support for 32-bit Intel and PowerPC processors. Cornerstone 2 adds support for 64-bit Intel processors and will run in 64-bit mode on 64-bit enabled Macs (i.e. Core 2 and newer) when running on Mac OS X 10.6 Snow Leopard.

    Cornerstone will run in 32-bit mode on Mac OS X 10.5 Leopard (Intel and PowerPC) and on Snow Leopard with 32-bit Intel processors. (#732)

  14. SASL support added

    Cornerstone 2 can connect to repositories via svn:// which utilize SASL for authentication. (#598)

Performance Improvements

  1. Externals window performance was improved

    The performance of the externals window was improved such that changing filters and switching between list and text views is now much faster for folders with large numbers of externals.

Usability Improvements

  1. Lock function was improved

    In Cornerstone 1.5 and earlier, the lock function could only reliably determine if a selected file was already locked if the View > Show Repository Status option was enabled. If this option was disabled and a file was already locked then an attempt to steal the lock from another user would silently fail.

    Cornerstone’s lock function was significantly improved for version 2 to:

    • Read the lock information for the selected files in the background in order to display reliable lock information in the Stolen Locks section.
    • The Stolen Locks section is no longer collapsible in order that this important information is always visible and less easily overlooked.

    Stealing a lock is a potentially destructive operation that can result in conflicts and loss of work. Cornerstone therefore now always prompts the user for confirmation before stealing locks.

  2. Subversion configuration changes are automatically adopted by the Subversion configuration preference pane

    The Subversion configuration preference pane now automatically picks up Subversion configuration changes made by other applications and refreshes the pane’s contents accordingly. (#859)

  3. The global ignores editor in the Subversion preference pane was improved

    Adding a value to the global ignores value in the Subversion preference pane resulted in the default global ignore values being replaced. As a result, files which are ignored by default (e.g. .DS_Store). This was a consequence of Cornerstone setting a value in Subversion’s configuration which resulted in Subversion adopting this value instead of the default.

    The global ignores editor was improved in version 2 to allow the user to adopt the default value as the basis for the user’s global ignore list. (#912)

  4. The log view’s compare view now supports navigation

    The log view’s compare view was extended to include a popup menu and navigation (i.e. left/right) buttons allowing the user to navigate through a revision’s changes without leaving the compare view. (#863)

  5. The Save Differences as Patch… function now supports the generation of patch files which use relative paths

    1.5 always created patch files which used absolute paths. For Cornerstone 2 a popup button was added to the patch save panel allowing the selection of the following path types:

    • Absolute (same behavior as 1.5)
    • Relative to working copy
    • Relative to selected folder

    When a file is selected the third option is Relative to parent folder. (#893)

  6. Option added to control whether externals are included in updates

    In 1.5 and earlier, updating a working copy without updating its externals required the use of the Working Copy > Update… function, which required several interactions for each update operation.

    Version 2 adds a new Include Externals in Updates option to the Working Copy menu which controls whether the Update to Latest Revision function updates externals.

    The addition of this option should simplify using Cornerstone with working copies which contain large numbers of externals or externals that change infrequently. (#639)

  7. Support added for tree conflicts

    Items with tree conflicts are now displayed as conflicted in the working copy browser. The Inspector was also extended to display a description of the cause of the tree conflict.

  8. Commit view comparisons refreshed following file system changes

    The commit view’s compare view now listens for file system changes and automatically refreshes when the file being displayed changes. (#850)

  9. The log view’s compare view now supports arbitrary revisions

    It’s now possible to enter HEAD as well as arbitrary number/date revisions into the compare view when opened from a log change. (#923, #924)

  10. Copied files are compared against the copy source’s BASE revision

    The compare view was improved to compare copied, moved and renamed files against the BASE revision of the copy source. This applies both when comparing from the working copy browser and the commit view. (#928)

  11. Diff view option buttons were improved

    The small buttons located next to the horizontal scroller at the bottom of the text diff view (controlling whitespace comparison, line difference comparison etc.) were improved. The new icons are larger, more descriptive and make these functions more discoverable.

  12. svn:needs-lock added to auto-properties in preferences window

    The auto-properties section of the Subversion preferences (Cornerstone > Preferences…) was improved to add support for the svn:needs-lock property. (#946)

  13. Overwrite handling in the file browser was re-written

    The prompt displayed before overwriting a file during a move or copy operation was improved to:

    • More closely reproduce the interface and terminology of the equivalent prompt in Finder
    • Support replacing all files being moved or copied
    • Support key equivalents for the alert’s buttons
    • Only provide options for multi-file operations when multiple files are actually being copied or moved

    (#309)

  14. Check out depth is now displayed in the working copy file browser

    A new column was added to the working copy file browser which displays the check out depth for folders. An icon is not displayed for folders which have the default check out depth of Infinity (i.e. all folders and sub-folders).

    The file browser can be sorted by check out depth and a tooltip is displayed when the mouse is hovered over the icon.

    The file inspector was also extended to display the depth icon for the selected folders(s). (#638)

  15. Shutdown handling was improved

    Network issues can cause very long timeouts with Subversion, so Cornerstone 2 now displays a progress window during shutdown.

    This window also also allows the user to quit the application immediately if desired (i.e. without waiting for background activities to complete). (#973)

  16. Tooltips added for file browser columns

    Tooltips are now displayed for the status, repository status, property, lock and depth columns. (#436)

  17. Status overlay window is shown by the compare view when loading files

    The compare view now displays a Loading… overlay window while exporting files from the repository for comparison. (#930)

  18. Quad-clicking text in the compare view selects a section’s text

    Quad-clicking (i.e. clicking 4 times) in Cornerstone’s compare view now selects all text in the section under the mouse.

  19. Key equivalent added for Show Differences in Whitespace

    The View > Show Differences in Whitespace function now has the key equivalent Cmd+'. (#889)

Compatibility

  1. Mac OS X 10.4 Tiger is no Longer Supported

    Cornerstone 2 does not support Mac OS X 10.4 Tiger.

  2. Compatible with Mac OS X 10.5 Leopard and 10.6 Snow Leopard

    Cornerstone is compatible both with Mac OS X 10.5 Leopard and the more recent Mac OS X 10.6 Snow Leopard.

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

  3. Subversion Updated to 1.6.12

    The 1.6-level version of Subversion included with Cornerstone was updated to 1.6.12.

Compatibility

Backwards Compatibility

Cornerstone 2 is fully backwards-compatible with 1.5. 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 and 2 against the same configuration databases in your Application Support/Cornerstone folder.

Issues Resolved in Cornerstone 2 Beta 1

# Description
13 Aggregate working copy changes into badge shown on application icon in Dock
134 Tagging and branching should be better supported
145 Add find function to text compare view
172 Display tooltip information for events in timeline view
292 Integrate blame-like annotations into text diff view
309 Overwrite prompt options need to be improved
436 Add tooltips for status to outline view in working copy browser views
443 Make compare/diff view editable
446 Add character-based differencing to text diff view
598 Add support for SASL authentication and encryption
638 Visualize check out depth of folders in working copy browser
639 Working copies should retain state of the “Update contents of external definitions” option
652 Show repository change summary in the working copy source list
709 Copy in repository browser to branch/tag should be more discoverable/intuitive
732 Provide 64 bit version of Cornerstone
848 Dragging the icon in the inspector should not cause the application to activate and come to the foreground
850 The commit’s compare view is not refreshed following file system changes
859 Ensure that the Subversion configuration panel automatically refreshes when the underlying configuration file(s)’s contents change
860 Canceling an update operation while an external is being updated doesn’t cancel the top-level update operation
863 It should be possible to navigate though changes made to a single revision in the log view’s compare view
864 The commit menu item/tool bar item should be disabled for missing files in the working copy browser
885 Text field in patch output sheet does not display vertical scroller
889 Add key equivalent for Compare > Show Differences in Whitespace
893 Save Differences as Patch function should support creation of files with relative paths
908 Authentication panel may be displayed when choosing a source directory in the external editor, even though credentials are available in the keychain
912 Editing the initially empty global ignore field in preferences results in .DS_Store files no longer being ignored
918 The Open Left/Open Right commands should open the file(s) in the application as specified in the Inspector’s Open With… setting
922 Open Externals button in Inspector is enabled for unversioned folders
923 Can’t compare against HEAD in compare view opened from log item
924 Swapping revisions in a compare view opened from a log item results in an error
927 Add support for P4Merge (Perforce) visual comparison tool
928 Files scheduled to be added as the result of a copy should be compared against the BASE version of their copy source in the commit view
929 Deleted files listed in popup menu shown when comparing in the commit view should be disabled
930 Status should be more clearly visible in the compare view when loading files from the repository
931 Compare view should provide option to display invisible characters (e.g. spaces, tabs and newlines)
932 Page breaks cannot be distinguished from normal spaces in the compare view
936 The folder selection displayed in the inspector changes when a field in the inspector is clicked to begin receiving keyboard input
937 Text diff view incorrectly displays differences in files containing non ASCII characters which use substituted fonts (e.g. arabic and kanji characters)
939 Add support for Sofa’s Kaleidoscope as an external compare tool
944 Ensure leading white spaces are preserved when log messages are rendered in the log view
945 Repository can’t be deleted from source list if one or more folders referenced by working copy sources are not valid working copies
946 Provide support for the svn:needs-lock property in auto-property preferences
947 Differences in trailing newline characters are not displayed correctly by the compare view
949 Collapsed sub-folders are re-expanded in file browser when the previously-collapsed parent folder is re-expanded

Issues Resolved in Cornerstone 2 Beta 2

# Description
172 Display tooltip information for events in timeline view. Standard tooltip replaced by anchored popover window which displays more, better-presented information with scrolling support for long messages (that were previously truncated)
953 Add tooltips for change summary badges in working copy source list
954 Error is displayed (“path does not exist”) when browse button in path field is clicked if working copy source list contains a reference to a non-existent folder
955 Source is not selected in open panel invoked from merge source/target path field when source does not exist for related repository
956 Vertical ordering of working copies and repositories in merge source/target open panel should be reversed to be consistent with main window’s source list
957 Run background status checks for repository updates in low priority threads
960 Working copy change summary displayed in source list can sometimes get out of sync with the working copy file browser
961 Background working copy status checks should be performed sequentially instead of in parallel to reduce CPU and disk load at start-up
962 Horizontal scrolling performance in timeline view is very poor with large numbers of revisions
963 Change summaries (local and remote) in working copy source list should include thousand separators

Issues Resolved in Cornerstone 2 Release Candidate 1

# Description
Improved appearance of popover windows, in particular black popovers displayed over compare view annotations, which now use a style more consistent with Mac OS X’s HUD windows.
Improved appearance of application’s modal sheets (options for update, import, export functions etc.)
959 Externals editor displays broken proxy icon for repository items
964 “Loading…” bezel displayed by the compare view while loading documents remains visible after exiting view
965 Attempting to load a non-existent file for a particular revision in the compare view results in an activity which never terminates.
966 Compare menu items for difference navigation (e.g. Previous Difference, Next Difference etc.) should be disabled when single document is displayed
967 An error is displayed intermittently while opening a new svn:externals editor
968 Tooltip in working copy source list gets stuck onscreen if tooltip is displayed for item when spinner stops
969 Log view should indicate the working revision for the selected working copy item
970 Cornerstone doesn’t prompt for confirmation before reverting when revert function is invoked with a working copy source selected
971 Option in “Update…” window for extending sparse working copy (“Permanently extend working copy to this depth”) is misleading
972 Extend the log view to support updating the selected file or folder to a revision visible in the log
973 Cornerstone can appear to hang while quitting if running activities run into long timeouts as a result of network problems

Issues Resolved in Cornerstone 2 Release Candidate 2

# Description
Updated help book documentation for 2.0.
Added help book section on text diff editing.
Added help book sections on annotations.
Added help book sections on merging.
854 Quick Look emits silent warning to console on Mac OS X 10.6 Snow Leopard
974 New Objective C 2.0 keywords such as @property, @synthesize etc should be syntax colored
977 Compare view doesn’t prompt to discard edits before toggling whitespace comparison
978 Undo in compare view can stop working in some circumstances

Issues Resolved in Cornerstone 2 Final Release

# Description
979 Add tooltip for the recent modification column in the repository file browser view
980 Add a help book section describing the repository browser view
981 Picker window displayed by revision field in the update window is displayed under the menu if application toolbar is set to “Text Only” or “Icon Only”
982 Error is displayed when opening the compare view under certain conditions
983 Cornerstone crashes due to a Subversion assert when a server name containing upper case characters is entered in the “Add Repository” window
984 Control layout issues arise when log message sheet window is resized in collapsed state

Release Notes for 1.5.5.21 (v1.5.5)

Filed under: Cornerstone,Release Notes — Administrator @ 5:48 am

Resolved Issues

# Description
906 An error occurs when diff’ing changes in the log view for files located in an external reference from a separate repository
910 Mouse tracking in working copy file browser can cause high CPU load
911 Text for user transcript notes is not stored persistently
913 Locking and unlocking files in the repository browser results in an error
915 Cornerstone shows an error after renaming a file to an empty name
916 Log view doesn’t refresh automatically after making changes in the repository browser
917 Log message window doesn’t accept keyboard input when displayed after dragging files from Finder to the repository browser
919 Cornerstone can crash when quitting following a burst of file system activity
922 Open Externals function in File menu is enabled for unversioned folders

Release Notes for 1.5.4.20 (v1.5.4)

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

Resolved Issues

# Description
861 Window > Cornerstone menu item should be visible when main window has been closed
894 Activity cancellation doesn’t work in 1.5.3
895 Unix shell scripts which don’t have file extensions can’t be run as post-commit scripts
896 Cornerstone leaks memory during file browser toolbar validation
897 Cornerstone doesn’t release all memory when closing an externals document
898 The font used to render the author, date and age information in the log view is too small
901 Compare view’s scroll position and selection is reset during refresh

Release Notes for 1.5.3.19 (v1.5.3)

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

Resolved Issues

# Description
Fixed a couple of minor typographical errors in the tagging section of the Cornerstone help book
883 Line numbers aren’t displayed for the left file in the text diff view if the file contains less than 10 lines
884 Switching to the log view displays an error for items with URLs which do not contain a username
887 Items in the log view’s change lists cannot be selected if the path contains an apostrophe character
888 Concurrent usage of OpenSSL by Subversion’s Neon HTTP library can cause Cornerstone to crash
890 Highlighted image is not displayed for compare tool toolbar items when the mouse is pressed
891 Cornerstone crashes if multiple move/copy operations are performed in parallel