Interactive rebase in SourceTree

Over the last year we've introduced interactive rebase support in SourceTree on both Mac and Windows to help developers rewrite their commit history easier than ever. Often we've found this feature to be regarded as both mysterious and dangerous by many DVCS users, so we thought we'd help you learn what this feature does, how it can be a great asset in your workflow, and how to use it safely. What is "rebasing interactively?" In short, rebasing is a way of changing your commit history. You'll often

Continue reading »

I reviewed OSX 10.10 over the weekend, and observed a new trend emerging on the design battlefield. It’s blurry, translucent, and vibrant. It’s also incredibly expensive and difficult to render. In OSX 10.10, dragging a translucent window makes the panel flicker, go completely black, and breaks blur effects. Resizing a window is incredibly slow and choppy. Developers have their work cut out for them to achieve decent performance by the end of the beta. Eventually, they’ll get it right, and Apple will be hailed as revolutionary once again.

Continue reading »

This major release of git has been brewing for a long time and I am excited to go on the hunt in the Changelog to find cool bits of awesomeness. As usual if you want to catch up with past git releases, I've been doing this exercise for a while, check them out: 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.9. This piece will necessarily cover only a selection of the release, if you want the complete list of changes and bug fixes have a look at the full Changelog. Some defaults changing: improving usability and

Continue reading »

Extending D3.js

I'm a big fan of using D3.js for building content from structured data. You can write expressive JavaScript using the D3.js API to convert your data to structured markup. A real quick example might be: [cc lang="html" line_numbers="0"] [/cc] [cc lang="javascript" line_numbers="0"] var d = d3.selectAll(".content ul").data([ "one", "two", "three", "four" ]); d.enter() .append("li") .classed("number", true) .text(String); [/cc] Which really just says take

Continue reading »

git is a fantastic choice for tracking the evolution of your code base and to collaborate efficiently with your peers. But what happens when the repository you want to track is really huge? In this post I'll try to give you some ideas and techniques to deal properly with the different categories of huge. Two categories of Big repositories If you think about it there are broadly two major reasons for repositories growing massive: They accumulate a very very long history (the project grows over

Continue reading »

Design Guidelines 1.4 Released

The Atlassian Design Guidelines (ADG) has an exciting new release. We've polished some old things, created some new things and have made the whole experience of using our guidelines even better. What's in the release? Forms The old forms page was heavily visited but not very helpful. We've overhauled the forms page making it more robust and easier to use. Included is a new way to validate forms and tooltip/help design that helps clean up our form layouts and allows users to focus on their

Continue reading »