I’m very happy to announce that a major new update to SourceTree is now available, version 1.1, which brings a number of great new features!
Brand New Diff View
The new diff view has a more user-friendly display of changes in the file; text differences are formatted more attractively, and binary file differences are displayed by embedding a preview of the before and after states in the diff area (you can also open the files in their before / after states in their native applications).
In the text diff display in the file status view, you have the ability to manipulate the files directly from the diff – discarding changes if you want to either at the file level, the hunk level, or even a selection of individual lines within a hunk. This lets you very quickly undo changes at a very low level of granularity directly within SourceTree.
If you’re using Git, you can also use the diff view to stage and unstage file contents at the same level of granularity – down to the line level if you wish.
Quick Look support
SourceTree now has Quick Look support, so you can press the spacebar (or use the menu options) on any file selection and get the familiar Quick Look panel showing the contents.
Multiple file selections work too, and so does using Quick Look on history views – if you do this, SourceTree will show you a snapshot of the file at that point in history instead, so you can easily see the file as a whole in its historical context, with all the usual formatting you’d expect.
As well as letting you work with both Mercurial and Git, now SourceTree lets you collaborate with Subversion projects too!
SourceTree’s Subversion support is based on the bridging technologies of hgsubversion and git-svn – this means that you can clone a remote Subversion repository into either a Mercurial or Git repository locally, gaining many of the benefits of using these tools such as increased speed and flexibility. You can continue to synchronise your local repository with the Subversion server, since hgsubversion and git-svn are bi-directional and will convert commits in both directions. SourceTree exposes this as the familiar ‘Push’ and ‘Pull’ metaphors meaning you can continue to work in largely the same way (please read the help for details of limitations in each bridging tool).
Background checking of remote status
SourceTree now periodically checks the remote repositories you’re tracking in the background and displays the incoming and outgoing commit counts in the Bookmarks view and on the Push / Pull toolbar buttons. In Git, it will also fetch in the background so you always have the latest state available to you when you choose to use it.
You can configure this feature globally in the Preferences panel, or if you want to disable it for specific repositories (say, those which you can’t always connect to because of VPN setups or similar), you can do this on the Repository Settings sheet.
Other new features
- Transplant / cherry-pick support
- Cloning is now performed in a separate window instead of a modal sheet. This lets you get on with other things
while long-running clones are active.
- Improved the colour scheme for branches, remote branches and tags. All colours are now derived from the graph colour for more obvious affinity, and remote branches (git only) have an inverted colour scheme to set them apart.
I hope you like this update!