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!
External tools: support environment variables in the Command input field
It's usually recommended to use the following environment variables to locate tools:
%ProgramFiles%
%ProgramFiles(x86)%
Faster merge workflow: Support auto-stashing for merging in the same way it is already supported for pulling
(Note: relates to this request, which deals with safely aborting merges)
When you pull from the remote origin into a repot that has local changes, SmartGit has a great feature where it will auto-stash before the pull, and auto-apply the stash after pulling. If conflicts occur after pulling, the user must manually apply the auto-saved stash after resolving the conflicts.
This feature is a huge time saver, and prevents loss of work as well.
This request is to implement the same feature for merging into a branch with local changes.
Currently I have to do this:
Best case:
- Create a stash (because I don't know if the merge will generate conflicts or not until I try)
- Merge (no conflicts)
- Apply the stash (no conflicts)
- Drop the stash
Worst case:
- Create a stash
- Merge
- Resolve merge conflicts
- Manually apply the stash
- Resolve conflicts from applying the stash
- Drop the stash
What I would like is for SmartGit to perform the auto-stash / auto-unstash for me before/after merging. The resulting workflow would be simplified:
Best case:
- Merge (SmartGit does auto-stash/un-stash, no conflicts at all from merge or unstash, SmartGit auto-drops the stash)
Worst case:
- Merge (SmartGit auto-stashes)
- Resolve merge conflicts and continue the merge
- Manually apply the stash
- (Possibly) Resolve conflicts from the auto-unstash
- Drop the stash
As you can see, this reduces the common-case (clean merge, clean unstash) from 4 steps to 1.
In the middle case (conflicts only upon merge or unstash, but not both) it reduces it from 6 steps to 4.
In the worst case (conflicts on both merge and un-stash) it reduces it from 6 steps to 5.
User defined Tool argument with input label
I as a user would be happy if a Tool argument could be like ${UserInput:InputLabel} to make it possible to give parameters to an external script.
The InputLabel would be displayed either as a Label to the left of an input field or inside an input field as a message to the user executing the tool.
Examples I need this for is to passa new branch names, commit messages.
The later would need citation also of course, but that could be done on the arguments line in the Preferences > Tools. Like "{UserInput:NewSquashCommitMessage}"
If multiple argument variables are used, it would be nice to have all in the same dialog to fill them in.
It would also be nice to have list selection ${AllBranches:MasterBranch}
Allow custom root CAs to be trusted, or respect Windows / IE's list
My company has recently put in a new web proxy which man-in-the-middles all https traffic; it intercepts it, decrypts it, then re-encrypts it with a certificate that is signed by a local company authority. My understanding is that this is fairly common in enterprise environments.
This is largely transparent for web browsing, because the company pushes its own CA certificate to the PCs; but SmartGit (and its built-in git implementation) do not use this certificate store.
This means that SmartGit cannot connect to its update server and, more seriously, means that it cannot connect to any remotes.
I can probably work around the git problem by installing git myself and not using Smartgit's built-in version; but that is significant extra hassle on Windows, which I imagine is why there is a built-in version in the first place.
RFE: Allow users to edit the list of trusted root certificate authorities, or respect Windows's list. The latter would be far better, but would also be platform-specific.
Enable 'compare with working tree' when multiple files are selected
This feature is available in the log windows under (Shift+F4), but only for a single selected file.
Regular compare (F4) works on a range of files. This feature should too.
Add "Fixup" option to the journal
For those who have to always clean up feature branch history before merging (commit squashing, reordering, splitting, etc) it would also be handy to have the "Fix up" option which basically is a "squash this commit with parent keeping parent message only). My co-workers constantly use GitUp for this kind of history rewrite thing, it's ugly but very fast. Personally I'd rather have only one tool.
Changes view: allow to configure tools that convert binary files to displayable text files
gitk display a simple but great "text diff" of the content changed in files such as Microsoft Word. This is very helpful when reviewing what was changed before committing and for review. Please add this ability to the diff tool.
Cherrypick line in log window (Git)
It could be useful to have a special line to show the cherrypick effect: the commit/branch from which the cherry pick started and where it arrived.
Here how it works in TortoiseHG:
The dashed line shows the cherrypick effect.
This is pretty useful with our Giflow Workflow.
Journal: Directly amend-commit to an older commit
I like to have a clean history in my repositories and thus I do lot of rebasing and squashing on feature branches. And there is especially one task I do *very* often in the exact same way: Amend (parts of) local changes to older commits of the current feature branch because there was something missing/wrong in an older commit which I want to fixup now. This is my current workflow to do this:
- Stage changes which should be amended to an older commit
- Commit index into a (temporary) commit (with a random commit message like "asdf")
- Using drag&drop in the Journal, move the commit down the history, right after the commit to fixup
- Select both commits in the Journal and choose "Squash" from the context menu
This works pretty good (as long as there are no conflicts), but requires lot of clicks/typing/dragging every time. If I'm not the only one who often amends to older commits, it may be worth to implement a feature to make this easier ;)
Such a feature could look very simple: In the Journal, add a context menu item called something like "Amend current index". Then one needs to just stage the desired changes, right click on an older commit in the Journal, choose "Amend current index", and SmartGit would do the whole rebase operation.
Show repo status in taskbar icon
It would be nice if the repo status icons (the "orange up" or "green down" icons) can be repeated at the taskbar level. We just need to add these arrows in the lower-right quadrant of the taskbar icon.
As a maintainer, I would like to know something has changed while SmartGit is minimized.
I believe some media players to this as well, indicating the play/pause state in the icon.
Customer support service by UserEcho