Version 17.1

Major Improvements in SmartGit 17.1

Features

Dark Theme

Dark Theme. | safeHTML }}
SmartGit supports a dark theme with operating system independent colors, which was our #1 requested feature  on smartgit.userecho.com .

Changes view: Optional Compact Display

Changes view: Optional Compact Display. | safeHTML }}
For the Changes views an option allows to hide unchanged lines, which was requested on smartgit.userecho.com . Currently, this mode causes that no syntax coloring nor editing is possible.

Improved Line-Endings Support

Improved Line-Endings Support. | safeHTML }}
The Changes view can optionally show line-ending changes (requested at smartgit.userecho.com ).

Warning for mixed line-endings

Warning for mixed line-endings. | safeHTML }}
SmartGit makes accidentally overwriting text files with mixed (inconsistent) line-endings harder by showing a warning dialog for the built-in File Compare, Index Editor and Conflict Solver (which only show the file content without line-endings).

Interactive Rebase

Interactive Rebase. | safeHTML }}

Former SmartGit versions already allowed to reorder or squash commits in the Journal view immediately. But if you had to do multiple changes at once, this was not perfectly handy.

Now SmartGit allows to batch process such interactive rebase operations which also has the advantage of being able to resolve conflicts (requested at smartgit.userecho.com ).

The interactive rebase option to edit a commit has been made available as a dedicated Modify or Split Commit command.

Stash Improvements

Stash Improvements. | safeHTML }}

The stash command has been improved:

  • support for stashing just the selected files (requested at smartgit.userecho.com ),
  • optionally keep the index or the whole working copy (making the stash just a backup of the modified files),
  • the toolbar buttons has popup options for supporting a quick stash without dialog,
  • stashes can be renamed.

The option to include untracked files has been moved to the preferences.

Conflict Solver: Take Both

Conflict Solver: Take Both. | safeHTML }}
The Conflict Solver now offers commands to take changes from both sides (requested at smartgit.userecho.com ).

Refresh Performance Improvements

The refresh performance (especially for large repositories) has been improved by roughly 50%, making SmartGit more responsive when initially scanning a repository and when invoking fast Git operations, like Stage (requested at smartgit.userecho.com ).

DeepGit Integration

DeepGit Integration. | safeHTML }}
DeepGit  is a combined Blame/Log tool which helps to investigate the history of source code. It’s now bundled with SmartGit and can be invoked using Query|Investigate.

Locate Gitignore Files

Locate Gitignore Files. | safeHTML }}
If you want to know why a certain ignored file is ignored or what gitignore files have influence to the selected file or repository, you now can reveal the corresponding gitignore files easily.

Improved Find, Find & Replace

Improved Find, Find & Replace. | safeHTML }}
The Find and Find & Replace dialogs have been unified being the Find dialog a part of the Find & Replace dialog. The Find feature part now allows to use regular expression and the Find Previous and Find Next operations have been made more intuitive to use.

Ignore Tracked Files

Ignore Tracked Files. | safeHTML }}
The Ignore command has been extended to also support tracked files by first removing and then ignoring them.

Rename Detection

Rename Detection. | safeHTML }}
Files renamed in the working tree (either missing and untracked, or removed and added) can be detected. The Changes view shows the file names and the file content from the correct file (Index and HEAD).

Repository Settings

Repository Settings. | safeHTML }}
The dialog has been reworked for easier display and editing of the effective Git config values. A new option for what to do when pushing submodules has been added.

Output Popup

Output Popup-1. | safeHTML }} Output Popup-2. | safeHTML }}

To not waste more screen space than necessary, you now have the option of hiding the Output view and still being notified about the command success or failure.

If a command fails or produces some warning messages, you will see the exact invoked commands and their output in a dialog, easily disposable with ESC.

In case the command succeeded or you have opted for not seeing certain warning messages you may see instead an automatically-hiding notification. Certain commands, e.g. Stage, will not show any dialog at all. To see the full output again, use Window | Output.

More Ref-Sorting Options

More Ref-Sorting Options. | safeHTML }}
Usually, tags or branch names with a higher number are more important than those with a lower number. Hence, a new sorting mode has been added to take account of that.

Easier Tagging

Easier Tagging. | safeHTML }}
Creating a tag is easier by taking the name of an existing tag and changing it slightly, but searching in long tag lists is not necessary and more because of the Ctrl+Space completion popup.

Journal: Show More Commits

Journal: Show More Commits. | safeHTML }} Journal: Show More Commits - Collpased Commits. | safeHTML }}
There are now 2 ways to show more commits.

Quicker Access to Commands

Quicker Access to Commands. | safeHTML }} Quicker Access to Commands. | safeHTML }}

A few toolbar buttons got (click and hold) popup menus for quicker access to certain commands, e.g. a quick way to fetch commits without a confirmation dialog.

The new combined Log toolbar button opens the repository log, and has a popup to show the log for the selected item. The old Log (Selection) toolbar button always working on the selection also is still available.

Log: File Tools

Journal: Log: File Tools. | safeHTML }}
In the Log you now can start external tools that operate on the working tree files.

Log: Improved Drag and Drop

Log: Improved Drag and Drop. | safeHTML }}
When dragging commits or refs in the log window, the occurring dialog has been replaced by a popup menu so you have quicker access to the options.
Illustration of Smart Gitty, the SmartGit mascot -- a grey cartoon cat with glasses, sitting behind a laptop