By Mike Minns on February 25, 2015
Over the last few months, there have been a steady number of articles, tweets, etc. concerned about Atlassian’s commitment to continued investment in SourceTree. The apparent silence from our end hasn’t helped either. An update is long overdue.
Many of you, who are followers of SourceTree, are used to seeing posts from Steve Streeting and Kieran Senior. So the most logical question is, who am I? My name is Michael Minns, and I joined the SourceTree team last October as a Team Lead.
I’ve been with Atlassian for a number of years. Prior to SourceTree, I spent my time working on cross-product Java libraries used in the integration of our products – JIRA, Stash, and Bamboo. One of the things I love about working at Atlassian is that we get to use the products we develop, every day. We get the same experience as our customers – an improvement for you means an improvement for us. It is most true in our developer tools team. So when the opportunity came to join the SourceTree team – it was a simple decision for me – not to mention the overlap with an abiding passion for .NET.
I’m excited to be working on a project that has such close contact with its customers. I love the passion you all show for SourceTree and your desire to see it improve continuously.
“ the number one graphical Git client in the world”
The statement above is SourceTree’s BHAG a.k.a. our moonshot. While we know we are still quite far from it, I wanted to mention it to highlight our strong belief in the future of SourceTree.
While SourceTree has been loved here always at Atlassian, it is fair to say that the phenomenal growth in the number of users over the last year or so has surprised us greatly. Steve Streeting and Kieran Senior have done an incredible job of keeping SourceTree moving forward with new features and supporting our growing base of users, which has rocketed past 650,000 MAUs (monthly active users) .
Maintaining the quality is not easy
Windows users of SourceTree are painfully aware of some of the quality and performance issues we’ve experienced since the 1.6 release and the introduction of the tree view back in October 2014. These are summarized in the (slightly notorious) issue – SRCTREEWIN-2093. We took our eyes off the ball and didn’t act quickly enough. he code base required major refactoring. We are currently working through the issues and while we still have a long way to go, the latest Windows release, v1.6.13, has turned a significant corner and put us back on the road to recovery.
We’re here for the long haul
It is true that Steve Streeting, SourceTree’s founding father, is no longer working directly on SourceTree. However, he is still here at Atlassian, to provide advice, opinion, guidance and that invaluable longer-term perspective to the team. Steve’s talent is a huge asset to Atlassian, and he is currently putting it to use by working on a super secret project that will be of great benefit to all Git and SourceTree users a bit further down the line.
In the meantime, SourceTree is receiving a lot of love from Atlassian. SourceTree is an integral part of . we will be able to keep moving forward – hiring new team members, adding features, improving integrations with other products and services, focusing more on the overall user experience and providing a stable and responsive application.
A huge thanks to the SourceTree community
Be assured, we’re here for the long haul. We’re just getting started with SourceTree.
By Kieran Senior on December 18, 2014
The maintainers of the Git and Mercurial open source projects have identified a vulnerability in the Git and Mercurial clients for Macintosh and Windows operating systems that could allow critical files to be overwritten with unwanted files, including executables.
SourceTree users should update their Git client with one of the published Git maintenance releases (184.108.40.206, 1.9.5, 2.0.5, 2.1.4 and 2.2.1) or Mercurial client with the latest release.
SourceTree for Mac 2.0.4 and SourceTree for Windows 1.6.12 have both been released to address this security vulnerability.
The Mac version includes embedded versions of Git and Mercurial which address the security vulnerability. If you are using system Git or Mercurial please ensure you update your local copies, alternatively you can switch to using embedded versions which are the latest releases of both Git and Mercurial.
EDIT (Mac): Because previously we only supported embedded version 2.2.2 this is a big leap forward for embedded Mercurial. As a result, having hgsubversion enabled will cause errors. To fix this go into your SourceTree preferences by either hitting ⌘, on the keyboard or via the “SourceTree” menu in your toolbar, then browsing to the Mercurial tab. At the bottom of this tab is the “Extensions” section. Ensure “hgsubversion” is unchecked and everything should work again as it should. We will be bringing back support for this extension in a future version of SourceTree.
The Windows version now defaults to download an updated version of Git and Mercurial. To update your embedded version go to the Git and/or Mercurial tabs in Tools > Options and click on “Update Embedded Git” or “Update Embedded Mercurial” respectively.
By Steve on September 25, 2014
Hey folks, we just made a major update for SourceTree for Mac available: version 2.0! The highlights of this release include a rework of the bookmarks window, and the addition of a bunch of new translations. We think you’ll really like it.
Bookmarks + Hosted Repositories = Repository Browser
In SourceTree for Mac version 1.x, you had two separate windows for your Bookmarks (local clones) and Hosted Repositories (your remote accounts on Bitbucket, Stash and GitHub). With 2.0, those windows are combined into a single streamlined window called the Repository Browser, with a ‘Local’ and ‘Remote’ switch:
If you don’t see the repository browser on load, you can show it with Cmd-B or “Window > Show Repository Browser” from the menu.
In addition to bringing the two interfaces together, the new window has lots of advantages:
- Cleaner, less cluttered display style. Press spacebar to quickly look at more detail of the selected repository
- Repository avatars: avatars assigned on Bitbucket will appear here, or any image files in the root named logo/icon
- When scrolling, the parent group of bookmarks ‘sticks’ to the top of the view for better context
- Creating new repositories is now simpler -
- You can now create a repository on a remote service (Bitbucket, GitHub) at the same time as creating a new local repository
- Easily publish a local repository to a remote service of your choice by right-clicking then ‘‘
- More optimised bookmark refreshing
You guys have responded brilliantly to our request for the community’s help translating SourceTree to more languages, and as a result SourceTree for Mac now comes in 10 languages:
- Chinese (Simplified)
- Portuguese (BR)
Not all of these translations are 100% complete, our criterion for including a new language is a 60% translation rate, on the basis that this is a good enough start and including it in SourceTree will then prompt others to help complete it. If you see gaps or inaccuracies in the translation, please help us fix it at our Transifex project, and if your language isn’t included yet, please help get it to at least that 60% mark.
SourceTree has a new, flat application icon:
This brings it in line with the style of other Atlassian tools like HipChat, and also prepares it to fit seamlessly with the style of the newest version of OS X, Yosemite. Note that because of OS X caching, you might not see the new icon straight after the auto-update, you’ll probably have to restart the app manually before it’s picked up.
The icons within the application for file status, branches, tags etc have all been updated to a ‘flatter’ style too.
We hope you like the new release!
By Kieran Senior on August 19, 2014
We’re excited to announce the release of SourceTree for Windows 1.6, a major step forwards in our recent work to SourceTree’s user interface. This release was the first to have public beta testing so we’d like to thank the community members who provided feedback for some of the improvements we made to 1.6 in the last week. This release includes loads of really great features we think you’ll love.
New Commit Experience
In the previous version of SourceTree the commit experience caused a new dialog to open, showing you the same information as you were seeing on the file status screen. We’ve now merged these two windows to bring you the new commit experience, an all-in-one window to manage your changes and get your files into source control faster than before.
View Configurations & Fluid Staging
Everyone likes a certain view configuration and now there’s a variety of options to suit your needs simply by using the new view configuration menu in the new scope bar.
Two new view configurations are a part of this release, the ‘flat list’ and ‘fluid staging’. To save on screen space the fluid staging mode will group staged and unstaged and display them all in one list, and the flat list will forego columns, displaying the entire path of the file.
What, still no tree view? This release included loads of really major changes to SourceTree for Windows, so to make sure the tree view is just right when we release it we’re happy to announce it’ll be a part of a minor release of 1.6 in the coming weeks and is actively being worked on right now.
Improved Diff View
The newly improved diff view is easier on the eye, less cluttered and provides the more commonly used functions along with horizontal scrolling for each hunk. We’ve moved the less common functions into a pop-out menu and made sure buttons become available based on your current selection.
We’ve completely remade the welcome wizard so you can go from install to first repo as fast as possible. In addition to this, the welcome wizard offers to install Git and Mercurial if SourceTree can’t find an existing installation.
And Loads More…
- Hot swap commit authors
- Sorting in file listings
- Quick-access menu to common functions for files
- Improved asynchronous hosted repository listings
- Smaller borders with bigger grab areas for easier user interface adjusting
- And more…
By Steve on August 12, 2014
Wouldn’t it be great if you could use SourceTree for Mac in your own language?
We’ve supported French and Japanese in SourceTree for Mac for some time, but until now we haven’t been able to expand to more languages efficiently. However, dropping support for OS X 10.6 recently has meant we could finally convert all our user interfaces to auto layout – only supported on OS X 10.7+ – which enables us to add support for many more languages. As many as we want in fact
Good News Everyone!
So, from today we’re adding significantly to the number of languages we intend to support in the next major version, and are asking the community to assist us in populating those translations ahead of the release. You can contribute your translations to the SourceTree for Mac Translation Project – signing up is easy and you can get started in no time.
We’ve added a bunch of languages already, and we may add more in future. Languages that reach a good level of completion (around 60%+) by the time the next major version is released will be included in that release. Right now Russian is the only one which has reached that threshold, so if you’d like your language supported please jump in and translate as much as you can.
Inside each language are a bunch of resources which correspond broadly to functional areas so you’ll probably recognise where they are if you’re a SourceTree user. However if something is ambiguous you can post a comment here or in Transifex to request a clarification.
Thanks in advance! Let’s see how many languages we can support in the next version of SourceTree for Mac!
By Steve on July 8, 2014
Today we’re releasing SourceTree for Mac 1.9.5; it’s a point release in name, but it has enough interesting things going on under the hood that we thought it deserved a blog post of its own. Let’s dig in!
Git 2.0: ‘simple’ is the new ‘matching’
Our friend Nicola wrote a great post recently about what changed in git 2.0 from a command line perspective. In SourceTree the main effect is around the default behaviour for pushing branches. Before git 2.0 the default was ‘matching’, which means that branches with the same name on the local and remote would be pushed – in SourceTree terms this means which branches are initially checked when you open the push dialog, although it also affects the which branch is chosen for the ‘push immediately’ option in the commit pane too.
From git 2.0 the default changes to ‘simple’, which means that the default is to push only your current local branch, and to push it to the remote branch that it is tracking, so long as they also have the same name. SourceTree respects this default if you’re running git 2.0+, which currently you’d only be doing if you’d told SourceTree to use the system installed git (our embedded git will be updated at a later date). You can also choose to explicitly set the push branch behaviour in Preferences > Git > Push Branches, regardless of what git version you’re running.
Better memory usage
SourceTree’s memory usage has been optimised considerably in this release. You should find SourceTree uses less memory under heavy use, and that it gives memory back to the rest of the system more quickly when you close repositories and other windows. And who doesn’t like more memory?
Auto-refreshing & ignored folders
SourceTree automatically refreshes when files change (unless you turn it off), which is a useful feature. However, previously if a file changed inside a folder which you’d told Git or Mercurial to ignore, it would still cause SourceTree to refresh. This is because SourceTree didn’t read your ignore files itself, it left the filtering of file statuses to Git and Mercurial, only providing functions to add items to the ignore lists.
From this update SourceTree reads & caches your ignore files itself, and uses them to make decisions about whether to automatically refresh. If SourceTree is notified of a change in the file system, it will check the cached ignore patterns and filter out changes that are contained within an ignored folder, thus avoiding triggering an auto-refresh for these events. This only works for changes within folders which are ignored in their entirety, not for individual files, because the file system event system in OS X only reports changes at a folder level. However, this feature is particularly useful for build folders and Xcode metadata folders such as username.xcuserdatad, which are frequently written to automatically but are usually ignored.
Many bugs fixed
This probably goes without saying, but we’ve squashed a number of bugs in this release, most notably a particularly nasty one which has been causing seemingly random crashes for a few people; the telltale sign of this one was a crash log featuring ‘NSConcreteFileHandle’. That one sucked, so we’re glad it’s gone now, along with a bunch of other bugs which you can read about in the Release Notes.
So 1.9.5 is a point release; you won’t see any big surface changes, but under the hood things just got a significant tune up, and that stuff is important too. We hope you like it!
By Kieran Senior on May 31, 2014
For another year running one of the SourceTree developers, Kieran Senior, will be at WWDC from June 1 to June 6. Just look out for the guy in the SourceTree t-shirt. Kieran will be at the conference throughout the week and would love to meet you, just come say hi!
Can you still resist this face?
On Tuesday morning outside the Moscone centre Kieran will be accompanied by product manager Justen Stepka where you’ll get the chance to ask us questions about Bitbucket and SourceTree. Just look out for a couple of guys outside the Moscone centre on Tuesday morning. On top of that we’ll also be handing out our new batch of SourceTree t-shirts for free!
Hope to see you there!
By Steve on May 30, 2014
It’s always difficult to make changes to an established product, and SourceTree for Mac 1.9 was no exception. Our goal with 1.9 was to make some of the core views more approachable to new users while retaining what brought more advanced users to SourceTree in the first place. We prototyped, user tested and dogfooded for some months and believed we’d got the balance right.
Things are never that simple though, right? The feedback we’ve received from the wider SourceTree community since indicated that although many people did like the new style and found it more approachable, a lot of existing users thought we simplified things too much, and removed some of the options they really liked in the file view and were core to their workflow.
We listened; today, we’re releasing an update to address the major points you raised.
More View Modes
You can now choose between 3 core view modes in the file list:
- Flat list (single column) – this was the only option previously in 1.9
- Flat list (multiple columns) – splits the flat list into separate columns for file name and path
- Tree view – clearly very popular and makes a comeback in this release
If you’re using a Git repository, you can also choose how you view staged changes:
- No staging – ignore the index and simply commit files that you check
- Fluid staging – staged and unstaged changes are in one list with headers between (previously the only option)
- Split view staging – the view is partitioned vertically into staged & unstaged panes which scroll independently. This also brings back drag & drop to stage/unstage.
The ‘Commit Selected’ option was removed in 1.9 because you can do this by checking the boxes (when not staging) to commit files, but it became clear that it was still a useful shortcut for people. So the feature is back; if you’re not using staging it simply flips the right checkboxes for you and opens the commit popup, if you are using staging then SourceTree temporarily switches to the ‘No staging’ view and checks the boxes so you can commit selected files, then flips back to the staging view afterwards (with the staged changes from before preserved if you didn’t check those files).
There are other changes too:
- Fixed a ‘stuck refresh’ case
- Line selection in diff views is now preserved over refreshes
- More details in the full release notes
Thanks for your feedback and understanding, we hope you enjoy the new release.
By Steve on April 29, 2014
We’re very happy to announce that the next major update to SourceTree for Mac is now available. This release focuses on improved visual design in areas such as the file status and diff views, and a much improved, more streamlined commit experience.
New Commit Experience
We’ve streamlined the commit experience so that it is no longer a separate sheet, but instead it’s built right in to the file status view:
Stage files with checkboxes
You can mark whole files for inclusion in the next commit (stage them in git terms) by checking the boxes in the file list:
[Edit] You can also use the spacebar to toggle the checkboxes for the current selection if you want to stage / unstage many files at once.
If you’re new to SourceTree, our default mode for git is simply for you to check the files you want to commit, which is more approachable to people who don’t understand staging yet. However as soon as you use one of the staging functions, SourceTree will switch to showing the staged and unstaged areas as above, which is what most more advanced Git users will want to see. You can switch back and forth between the simple and advanced modes on the context menu:
Quick access to common file operations
While you can still use the right-click context menu on files to access the full gamut of operations, we’ve also added a quick-access panel for the most commonly used actions, just click the ‘…’ button on the right of a file entry:
The new diff view
The diff view has been given a complete overhaul both visually and functionally. Not only does it look much cleaner, it makes better use of the space, with each hunk hunk of code scrolling independently (rather than everything being one big scrolling area), and controls are locked to the edges of the view for easier access. The functions for manipulating hunks and lines now switch depending on what you have selected; select lines of code to bring up the line buttons, click anywhere outside the code to deselect and bring the hunk buttons back.
Of course you can still stage, unstage and discard from the diff down to a line level:
The new commit pane
Finally when you come to commit, the commit panel simply pops up from the bottom of the file status pane (where you can see any draft message you might have already started to write), either by clicking on it, or using the usual Cmd-Shift-C keyboard shortcut.
As you can see, this is a lot more streamlined, but all the options are still there, and you can drive them with keyboard shortcuts now:
- ⇧⌘P – Toggle the ‘push’ option
- ⇧⌘O – Open the Commit options drop-down (amend last commit, signing etc)
- ⌘↑ – Previous commit messages
- ⌘⏎ – Confirm commit, as before
If you change your mind and don’t want to commit immediately, just hit Escape and everything will be saved for when you want to come back and finish it off.
To access the author settings, just click your avatar:
It’s time to upgrade
From now on SourceTree requires Mac OS X 10.7 or higher; 10.6 is no longer supported although you can of course continue to use previous versions of SourceTree on that platform.
There are lots of other refinements we don’t have room for here:
- Side-by-side binary diffs
- An improved setup wizard to get new users started
- Automatic switching to ‘All Files’ filter when you search on an empty file status list
- Subtree support now includes a squash option when adding
- Amend last commit is now supported in Mercurial too (hg 2.2+ required)
- The Working Copy sidebar entry now has an indicator of the number of files uncommitted
- Hosted Repositories now automatically shows repositories for all the teams/projects/organisations your account has access to
- …and even more
We hope you like the new version of SourceTree as much as we do!
By Kieran Senior on April 7, 2014
With SourceTree 1.4.0 for Windows released just a few weeks ago, we’re excited to announce that 1.5.0 is ready to go. We’ve been steadily playing catchup with the Mac version and we’re happy to ship some highly requested features.
The interactive rebase feature is now available on SourceTree for Windows. Need to mess with your local commits before you go and push them? Go ahead! To use this feature you can either click the Repository menu and hit Interactive rebase to rebase from your last upstream commit, or right-click on a commit in the log and go to Rebase children of <sha> interactively.
A more flexible option to Git’s submodules, subtree allows you to carry out a whole host of tasks when including other repositories into your own repository. You can pull down changes, or even commit and push changes to an unrelated repository. Like submodules, you can add a subtree either from the sidebar or from the Repository menu.
Keeping your tabs organized is an absolute must when dealing with a lot of repositories. To help with that you can now reorder your tabs; Just drag and drop them to wherever you want.
Get SourceTree for Windows or Mac