Select all files by default in SourceTree's log view
Asked by fxposter:

Is that possible to select all files and show their diff when opening commit in log view in SourceTree. Cause it's rather strange, that only the first file is shown by default and if I want to see all diff - I need to manually select all files.


Answers:
author: Nilesh Kapadia
body: The latest version (1.6.1) adds the option "Select all files when selecting commit" for this.

I'm glad it was added it, as it makes it easier to review a series of commits.


author: stevestreeting
body: Cmd-A selects all files if you want to, but the first file is selected by default because that's generally a faster way of getting to what you want to see. When you have a lot of files modified, displaying the diff for all files takes longer so this default is better for a snappier UI, and is less cluttered when you're skipping around between files than a combined view.

comments: author: fxposter
body: Cmd-A is not an option, cause before that I need to switch to apropriate component (cause when I select commit, Cmd-A will select all commits). I think it would be better, if when there are not many files - select them all automatically, or load them when I scroll diff view...


author: stevestreeting
body: 2 tabs will take you to the file list from commits. I'll consider the other options but making this feel consistent may be tricky.


author: Gabe da Silveira
body: I understand the justification for snappy UI, but I think this is outweighed by the poor usability because when you click a commit you expect to see the full diff. It's very easy to miss the fact that there are more files. Also, showing the first file does not guarantee snappiness anyway because the first file may be a huge diff in its own right.

I also don't think showing the full diff below some threshold is a solution because inconsistency is the worst.

If you won't consider showing the full diff on commit selection, I would actually prefer that no diff be shown so that it's obvious you are not seeing the whole diff.


author: stevestreeting
body: Having worked with both options I have to say the file-based one is snappier in almost every case - yes if the first file is massive and the others are small then this may not be the case, but that's a fairly rare edge case.

This is a subjective issue - I get just as many requests to show less information by default (to use fewer resources until further information is actually requested, and to minimise the time required to jump to file X in a large diff) as I do for showing everything by default. Showing nothing at all is not an improvement IMO.

The perfect solution would be a progressive load of the diff on scroll, a bit like the log view, with the ability to jump around too. That's actually pretty complex though (because you don't know in advance how big each diff is, jumping down into a progressively loaded, single-area diff without having to load \*all\* the preceding items is very tricky). I tinkered with this but never got it working as reliably as I wanted, hence this solution for the moment.


author: Gabe da Silveira
body: Fair enough, you've given it more thought than me and you have your opinion. I can get used to it. Now to search for discussion on a more painful issue (authored vs commit dates)...