Share your ideas on how to improve SmartGit!
This is no support platform! To report bugs or request support, please contact us directly. If in doubt ask us.
First search for a similar request and add your votes or comments there.
Take the time to describe your request as precisely as possible, so users will understand what you want. Please note that we appreciate your time and input, but we don't give any guarantees that a certain feature will be implemented. Usually, a minimum requirement is a sufficient number of votes. Hence, please don't comment like "when will this be implemented", but vote instead.
Follow the stackoverflow.com writing guidelines.
Thank you for your help!

Add button for explicit big file diff
I have a big file which couldn't get diffed in the main window. So I increased the size limit in the preferences file, but now, every time I select it, the diff process starts automatically and hands the background thread of the app (the UI is not blocked though). Even if I just want to commit it.
For binary files, there is a button named "Force Text", which works similar to my idea, which sounds like this:
The user changed the diff limit size:
- Y:
- the user selects a file whose size is bigger than the default one:
- Y: a "Force Diff" button appears
- the user presses the button: the diff process starts
- N: the diff process starts
- N:
- the user selects a file whose size is bigger than the default one:
- Y: the "File is too large to display." message appears (optionally, with a button that (creates? and) opens the preference file, or better yet, move those configurations in the UI)
- N: the diff process starts
Let me know if I was clear enough!
Thank you,
Iulian Onofrei

Add panel exposing the CLI (bash/cmd)
Add a panel that will be exposing the OS CLI opened in the project's folder.

Better support when using SmartGit for Git and Mercurial at the same time
I use SmartGit for both Git and Mercurial, which is great: I have just one tool learn, and the same tool on Windows and on Mac. But, the commands and preferences for the two VCS are inconsistently implemented. For example:
The preference "Stash: Automatically save stash if Pull, Checkout, or Interactive Rebase fails because of local changes" works for Git but not Mercurial. Similarly, the Apply patch menu item uses the git apply command rather than the Mercurial import command even when pointing to a Mercurial repository.
SmartGit should be smart enough to know what sort of repository it is executing against and use the appropriate command, or tell us when that command hasn't been implemented.
Also, perhaps there needs to be separate preference tabs for Git- and Mercurial-specific preferences as there are some siginificant differences.

Mercurial: support for creating and importing patches
SmartGit allows you to create and apply a patches for Git, but not for Mercurial. Atlassian's SourceTree and the tool within Intellij IDEA have a context menu against log entries to create a patch from single or multiple commits.

Log: custom tools should work on Files (as in the main window)
Tools configured in the Preferences should work on the Log's File view in a similar way as in the main window

Standard window: Tree view option in Files View
File Views lacks Tree View option. When validating code changes not only code is checked but also files structure and files placement.
When file path gets obscured by ellipses having tens (or hundreds) of files it gets quite impossible to validate placement, replacements or movements of files is correct.
Simple, classic, tree view would come handy for these cases.

Fixup a past commit and rebase autosquash
Ability, when committing changes, to fixup a past commit (if there are no merge conflcts for subsequent commits)
Suppose I have committed
A > B > C
..in that order. I realize I missed something on commit B, if I want to fix it I have to introduce a new Commit D, and make an interactive rebase to move commit D so it becomes A > B > D > C and merge commit B and D (we often refer to part of this process as a fixup)
I suggest improvements to the smartgit interface to be able to perform this automatically. Note that this procedure is now facilitated by the --fixup param when committing as explained here
Idea : in the commit window, we already have a "select" menu that can help copy previous messages. Introduce a similar "fixup" select menu, which allows selecting a commit similarly to "select", but when a previous commit is selected this way, transform the "commit" button so it becomes a "fixup" button and actually performs
git commit --fixup=[selected commit ref] # Commit indicating a fixup
git rebase -i --autosquash [selected-commit-ref]~1 # merge fixup commit into broken commit
(ans similarly for the other button "fixup and (force) push"
References
https://stackoverflow.com/questions/3103589/how-can-i-easily-fixup-a-past-commit
Customer support service by UserEcho