Tower 9 — A Brand-New Merge UI
August 2022 by Bruno Brito

Tower 9 — A Brand-New Merge UI

Table of Contents

If you ask 10 developers, 10 will agree that resolving merge conflicts isn't the most amusing activity. While we can't decide which version of the code should stand for your projects, we can definitely help in creating a better merge experience. In version 9.0 for Mac, that was exactly our focus — and we paid close attention to what you considered indispensable in this regard.

This release packs many improvements around merging, but that's not the entire story — we also squeezed in some of YOUR most-requested features.

Here is everything you should know about the new Tower 9.0 for Mac:

  1. Merge Improvements
  2. Snapshots
  3. Auto-Expand Diffs in Changesets
  4. Large Diff Warnings
  5. Show a Commit, Branch, and Tag in History

Let's explore these shiny new features, shall we? If you prefer, you can also watch this 4-minute video to quickly get up to speed 👇

1. Merge Improvements

It all starts with a brand-new Merge UI! The primary goal was to make it more explanatory and consistent for merge sequences and when editing revisions.

Now, when a merge conflict pops up, you will notice a big yellow banner on top. This will be visible in every merge mode.

The New Merge UI in Tower 9


Right off the bat, you will notice that it indicates the number of unresolved conflicts between the two branches. The files will now also show “conflict” and “resolved” badges.

For even clearer visualization, you can click on "Show only conflicts" to filter the conflicted files.

The New Merge UI - Show Only Conflicts
The New Merge UI - Show Only Conflicts


In case of a rebase, you will see a progress bar so that you know which step you're currently in. The icon, which you can also find in the sidebar, will be slightly different.

The New Merge UI — Rebasing
The New Merge UI — Rebasing


The new Merge UI may be the first novelty that catches your eye, but the merging overhaul goes much deeper. Let's look at the not-so-obvious merging refinements next.

Instant Conflict Detection

When merging another branch or revision (by merging, rebasing, or pulling), the dialog will instantly let you know if conflicts will occur.

Merge Conflict Detection
Merge Conflict Detection

Empty Merge Commits

During a rebase operation, you may end up in a scenario where no files were changed. If there are no changes to commit, you can now either create an empty commit or skip it.

Create an Empty Commit or Skip
Create an Empty Commit or Skip


In case it's a merge operation, you can either abort the merge or create an empty commit.

Edit the Commit Message When Rebasing

It is now possible to edit the commit message after resolving conflicts during a rebase or any other merge sequence, like cherry-picking or reverting multiple commits.

Edit the Commit Message When Rebasing
Edit the Commit Message When Rebasing

Restore Unmerged Versions

If you messed up merging a file, you can restore the unmerged version by right-clicking on it and selecting "Restore Merge Conflict Versions > Restore Unmerged Version of [FILE]".

It even works after the file has been resolved!

Restore the Unmerged Version of a File
Restore the Unmerged Version of a File

2. Snapshots

You can now create snapshots of your entire working copy or individual changed files.

Wait, Snapshots? What are they?

Think of snapshots as stashes that are automatically re-applied to the working copy — so that you can immediately try out an idea with the assurance that your current state is safely stored under the "Stashes" view.

To create a partial snapshot, select the desired changed file(s), right-click to access the context menu and click on "Snapshot [x] items".

Partial Snapshot
Partial Snapshot


To create a full snapshot, click on "Working Copy > Create Snapshot". All changed files will be included.

Create Full Snapshot
Create Full Snapshot



Just like any stash, you can write a message and find your work later under the "Stashes" view.

3. Auto-Expand Diffs in Changesets

Tower can now automatically expand diffs in changesets. Many of you have requested this feature in the past and we're happy to bring it to Tower 9.0!

Click on "View > Diffs in Changeset" to configure the number of items this will apply or simply set it to "Always Auto-Expand".

Auto-Expand Diffs in Changesets

4. Large Diff Warnings

Loading a large diff can have a big impact on performance. Now, if a diff exceeds a certain threshold (default is 20 KB), you will see a prompt before Tower attempts to display it.

You can change the default value by accessing the Preferences. In the "General" tab, type a different value under "Show warning for diffs larger than (kB)".

Large Diff Prompt
Large Diff Prompt

5. Show a Commit, Branch, and Tag in History

Another highly requested feature comes to Tower! You can now reveal any commit, branch, or tag in Tower's History view by selecting “Reveal in History” from the context menu.

Reveal in History

More Improvements and Bug Fixes

Apart from this list of new features, there are other improvements worth mentioning:

  • Working Copy: Files could not be dragged to external editors. This is working again.
  • Pull Requests: Tower could crash when reloading pull requests. This has been fixed.
  • Auto-Fetch: Further improved cancellation of hung auto-fetch operations which could block other remote operations.
  • Working Copy: The search field used a case-sensitive search when filtering for files. This has been changed to be case-insensitive.

We hope you're just as excited to try out Tower 9 as we are! If you already have a Tower account, update Tower to the latest version for free!

Happy merging! 😊

Not a Tower user yet? Download our 30-day free trial and take it for a spin!


Try the New Tower Now



PS: Don't forget that Tower Pro is free for students as well as teachers and educational institutions!

Your Download is in Progress…

Giveaways. Cheat Sheets. eBooks. Discounts. And great content from our blog!