What's New in SmartGit 3?

SmartGit 3 focuses on Mercurial support, improved Linux support, performance and a stream-lined user interface. For a complete list of all changes, please refer to the Change Log.

Mercurial

SmartGit 3 supports all important Open Source version control systems — Git, Mercurial and Subversion. SmartGit supports all basic Mercurial commands that you need for daily usage:

  • Pull, Push
  • Add, Remove, Commit
  • Add tags and branches
  • Switch branches, update to certain commits
  • Merge from other branches, resolve conflicts
  • Graphical Log

In combination with the MQ-extensions, SmartGit allows, similar to Git, amending the previous commit with working copy changes.

The Log window showing the Python Mercurial project.

Linux Support

The look&feel of SmartGit 3 has been improved significantly on Linux, due to a new GUI library (SWT instead of AWT/Swing). SmartGit 3 can use the Java Runtime Environment from OpenJDK which is shipped by default on many Linux distributions. In combination with the Java version 1.7, SmartGit can automatically detect external file system changes and refresh only the necessary parts of the opened projects. For easier integration into the Linux desktop, SmartGit comes with shell scripts to add and remove a launcher menu item.

On Linux shell scripts are provided to add a menu item for SmartGit.

Improved Performance

SmartGit 3 improves the refresh performance and reduces memory consumption. In combination with Java 1.7 it can watch for file system changes on Linux (Windows and Mac OS X were already supported in earlier versions).

Some commands, like cleanup, can be done in the background when SmartGit is idle.

Stream-lined User Interface

SmartGit 3 has native GUI controls, improving the overall responsiveness and look of the GUI. So, for example, it uses sheet dialogs on Mac OS X.

Native GUI controls and sheet support.

SmartGit 3 reduces GUI clutter by showing only options which make sense for the current selection. For example, if you perform a merge in the Log, the fast-forward option is only shown if the commit where the current branch points to is located in the history of the selected commit.

Reworked Log

SmartGit 3 provides a more compact branch structure display and allows filtering the displayed commits by several criteria, e.g. message, committer name or branch. If the names of the tracked remote and tracking local branches are identical, a more compact presentation is chosen to visualize their relationship and to save screen space.

More compact branch layout.

SmartGit 3 supports different coloring options. The new Branch Coloring helps to visualize commits which belong to the parent history of the selected commit.

Branch coloring make it easier to see the selected branch in complex branching structures.

The reworked Select Shown Branches chooser remembers the selected branches and also makes it easier to hide less interesting commits which otherwise could clutter the display in larger projects.

Reworked select shown branches configuration with filtering.

Branch Manager

The standalone Branch Manager, as well as its embedded version in the dialogs of various commands, such as Switch, now provide a more compact presentation and the ability to configure the displayed information.

Reworked switch dialog with compact branch display.

Notifications

Certain kinds of information, e.g. the release of a new SmartGit version, which were shown in message dialogs — often at inconvenient times —, are now shown in a less obtrusive way in a notification area.

Notification about new version.

Preferences

To prevent accidentally overwriting remote changes, forced-push is disabled by default and has to be enabled by users who know what they are doing.

If you want, you can now disable the display of the gravatar images of the commit authors in the Log.

New options in the preferences to enable forced-push or deactivate gravatar support.

If you use assembla.com as hosting provider, SmartGit 3 lets you easily select your projects to clone.

Added Assembla support.

Authentication

The built-in SSH client now supports keyboard-interactive authentication (similar to password authentication).

You now can individually delete cached credentials in the preferences.

You can individually delete known credentials.

Tag and Push

When creating a tag, you now have the option to automatically push the tag.

The newly created tag can pushed immediately.

Edit Commit Message

SmartGit allows to easily edit the commit message of the previous commit, even if your Index contains changes!

Column Selection

For the most important tables you can configure the shown columns by right-clicking the table header.

Right click the table header to select shown columns.