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!

Decrease the space between the commit title and commit body (message)
In the following picture, the spacing between the avatar image/top text + commit title + commit body (message) could be smaller. The commit title is already bold, which should be enough to highlight it from the rest.
Suggested distance: (Photoshop)
References:
1. https://smartgit.userecho.com/communities/1/topics/1083-save-vertical-space-on-commit-window

More support for pushing tags upstream
Environment:-
One local repo encapsulating four similar upstream repos (master repo, fork of master repo, release repo, fork of release repo) containing the same code. The Master repo and its fork are where we work. The Release repo and its fork are updated each time a release is made. To mark a release I put a tag on two branches (we release two variants each time) and then need to send it upstream to all the repos so that they have it.
This is easy at the git shell level with git push <remote> --tags however it's one of the few occasions where SmartGit doesn't provide a better way of doing it. As far as I can see, SmartGit only allows one tag to be pushed to one remote at a time.
In Smartgit the operations on tags currently are Push and Push To... both of which only allow one upstream to be selected at a time, meaning that I have to locate and tick each of the two new tags and then do four Push/Push To operations to get the tags into all of the upstream repos. Actually it might be eight operations - I didn't check last time whether a ticked tag forms part of a selection and the whole selection is operated on or only the right-clicked tag.
The feature request:-
1) Right click on the Tags section of the Branches pane and have new options Push All to All Upstream and Push All To...
2) Push All To... should allow more than one selection
3) Right click on an individual tag - the Push To.. there should allow multiple upstream repos to be selected
4) Group operations in the Tags list - allow pushing of several tags by right click on one of a group that are ticked. Right clicking on an unticked tag would operate on that tag alone.
5) Expand the right click menu on a branch in the Branches pane to include Push Tags/Push Tags To...

Support for markdown documentation view
Great client. My favourite for sure. I use its commercial version at work.
It would be great to have a md viewer like github/bitbucket/gitlab have.

Git-Flow: Allow specifying a commit from which to start the release branch
We are not always able to freeze the develop branch in order to start a release, so we need to be able to specify the starting commit on the develop branch.
git flow command: git flow release start <version> <base>
git command: git branch <branchname> <start-point>

Syntax Highlighting: support for Golang
It would be really nice to have syntax highlighting for Go.

Log Graph: filter for two or more commits
When working with submodules, in the parent repo you'll see the start/end commit of the submodule, along with the comments, but you can't see the actual changed in the submodule. You can open a log view of the submodule, but then you have to select the two commits; it's easy to filter for the first one using the SHA, but then there's no way to find the second one without unselecting the first.
What if you could filter for two separate SHAs in the "Filter" field? You'd then enter the two SHAs, click and command-click the two commits, and bingo: you'd see the diff.
Possible options:
- Have a separator character (probably not, as you'd want to be able to search through commit text)
- Allow extended regex (e.g. "(01010101|02020202)")
- ... something else?

Concurrent operations: allow doing actions on repo while SmartGit is busy
This is a complex and difficult feature that I've wanted for many years, and have bugged the SmartGit team about several times.
One of the frustrating things when you're working with SmartGit is that every time you're doing an action (like fetch or commit or cherry-pick) you can't do almost anything with the interface until it completes. It means that when I'm working with SmartGit, I spend a lot of my time twiddling my thumbs waiting for it to do one action before I issue the next one, and computers aren't supposed to be like this.
It'll be nice if SmartGit had some kind of command queue, so I could do another command while a command is already taking place, and then it'll get executed automatically when the first command is done.
For example, I could be pushing to a remote repo, which might take 5 seconds. Once I started the push, I might want to switch to a different branch. I should be able to do that. Right now what I do is use the command line `git checkout` instead, but staying inside SmartGit would be preferable.
This is a really complex feature, because SmartGit would have to have a queue of outstanding commands. We'll need to think about cases where a command failed in the queue, making the other commands not able to run.
Despite of the complexities, I think that this can be a huge improvement to SmartGit.

Merge local .gitignore file rules into root .gitignore file
With #309 (https://smartgit.userecho.com/communities/1/topics/309-ignore-file-ability-to-specify-which-gitignore-file-to-use), SmartGit got the ability to specify where to store ignore information.
Sometimes tools like PyCharm generate a local .gitignore file, when a new project is created in an existing repository. The project will have a global (.gitignore in the repositories root directory) and a local .gitignore file.
I would be great if one could merge or integrate the local file into the root .gitignore file.
Work items I could imagine:
- offer a right-click menu on files, if these files are ".gitignore" files
- copy rules from local file into root-directory file and extend the paths with the relative path from root to local directory
- remove the local .gitignore file

"Follow Only First Parent" is great!
Just discovered this option hidden in the log. It is extremely useful for viewing commits on Unreal Engines crazy criss-cross branching without 5000 unrelated commits getting in the way. Thanks!
before:
after:
Customer support service by UserEcho