When selecting an item from a commit listing, the Commit Details view displays all relevant information about the selected commit:
- The "Changeset" view shows meta information about the commit (including author, message, date, commit hash, etc.) as well as the detailed changes that happened in this revision.
- The "Tree" view allows you to browse the complete file tree of your project at that point in time.
Configuring a File Size Limit for Diffs
Diffs for some files can be quite large, and in some cases, is it not even necessary to generate a diff for these. You can configure file size limits in Settings, to ensure that diffs over the defined limit are not automatically displayed.
Collapse or Expand Changesets
By default, changesets are collapsed to ensure optimum performance. You can configure your preferred options under the View -> Diffs in Changeset menu item. You can either expand or collapse all diffs by default, or only expand a selected number of diffs.
You can always use the keyboard shortcut ⌘ + CTRL + → to quickly expand all diffs, and ⌘ + CTRL + ← to collapse them.
Zooming in on a Commit's Changeset
If you double-click an item in one of Tower's history views (instead of just selecting it), Tower displays a detailed view showing only this commit's changeset. This makes it easier to inspect this commit and all of its changes in detail.
Displaying Merge Commits
For normal commits, you will always see the commit's changeset (i.e. each of the files that were changed in this commit along with the detailed diff of these changes).
When looking at a merge commit, however, developers prefer different types of information. That's why you can configure the setting named "Show diffs for merge commits" to your needs in Tower's settings:
- “None”: No diffs are shown for merge commits (the Git default)
- “First parent”: Shows a diff for the first parent, effectively showing what changes were introduced by the merge (corresponds to options "-m --first-parent" for "git log" on the command line)
- “Merged file paths”: Shows a diff only for files that were changed from all parents (corresponds to option "-c" for "git log" on the command line)