Do not upgrade to version 2 if you are running Cornerstone on Tiger.
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.
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:
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.
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.
Information about the file’s earliest and latest revisions, including the revision number and date.
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.
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)
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)
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)
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)
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)
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)
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:
- Show the total changes for all working copies
- Show the changes for the selected working copy
- 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)
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.
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)
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)
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)
SASL support added
Cornerstone 2 can connect to repositories via
svn:// which utilize SASL for authentication. (#598)
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.
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)
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)
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)
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)
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)
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.
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)
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)
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)
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.
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)
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
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)
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)
Tooltips added for file browser columns
Tooltips are now displayed for the status, repository status, property, lock and depth columns. (#436)
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)
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.
Key equivalent added for Show Differences in Whitespace
The View > Show Differences in Whitespace function now has the key equivalent Cmd+'. (#889)
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.
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.