Playing with themes

SmartGit 17 allows to use theme files that can define alternative colors for foreground or background of certain controls.

To start, the easiest way to start is to invoke SmartGit 17.1 preview 2 (or newer) with the command line parameter


This way a file own.theme is created in the SmartGit settings directory (the exact path of the file is printed; you can rename or move it). You now can start tweaking this file. It contains of key=value lines. The most keys should be self-explaining. The value usually is a color defined as #rrggbb using hexadecimal values, but it also can be name of another key which makes it easier to create a couple of named colors instead of having to write the same #rrggbb value for different controls. inherit means to inherit the color from the parent control, default forces to use the control uses its default color from the operating system.

Now you only need to tell SmartGit about the own.theme file in the SmartGit preferences:


To create a theme that uses a dark background color for the main toolbar, uncomment the line


and change the value to inherit (to inherit the background from the parent shell control):


Similarly change the line




though the last change won’t have any effect on all platforms because of a limitation of SWT.

Buttons without selected state with Breeze-theme on KDE

If you are using a recent KDE version, e.g. with openSuSE Leap 42.2, you will notice that some toolbar buttons don’t show a selected (or toggled) state.

You can fix (or work-around) it, by opening the System Settings and selecting “Application Style” in the “Appearance” section. On the tab “GNOME Application Style (GTK)” you can find the options for selecting GTK themes:

If you select, e.g. “Adwaita”, and click “Apply”, SmartGit’s toolbar buttons will show their selected (or toggled) state:

SmartGit 17.1 preview started

The first public build of SmartGit 17.1 is available for download.

The existing commands for modifying commits have been enhanced by a “Rebase Interactive” command to batch-process multiple operations and a Split Commit command. DeepGit, the sophisticated history analysis tool, is now part of SmartGit. For better managing ignored files you now can reveal either the matching or all ignore files of your repository. SmartGit 17.1 allows to stash only selected changes instead of always all.


SmartGit 17 released!

We are proud to announce the official release of SmartGit 17. The first and obvious change is the new version numbering – as usual according to the year.

We have taken the SmartGit user feedback at seriously and implemented some of the most requested features. Hence, the most important new features are the a real dark theme, rename detection for uncommitted changes in the working tree, base-file display for the Conflict Solver and DeepGit integration, a tool for an sophisticated analysis of the file history. Check out What’s New for a more detailed list of improvements in version 17.

SmartGit is a graphical front-end for the distributed version control systems Git which also can be used to work with Subversion repositories. SmartGit runs on Windows, Mac OS X and Linux.

SmartGit can be used free of charge for non-commercial purposes (e.g. by OpenSource developers, students or certain wellfare institutions). For commercial use or if support is needed, you can purchase commercial licenses. The commercial licenses include up to 3 years of e-mail support and up to life-long free updates. For early adopters, we are offering up to 40% early adopter discount until February 5th 2017.

Download SmartGit 17

Note: if you already have an existing installation of SmartGit and your license supports free upgrades, you will be upgraded during the next couple of days.