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!
'Log for <file>' should show stashed commits/changes too
When you LKM on a file and click 'Log' - it shows filtered history with only commits that changed that file, but it doesn't show stashed changes. The 'Branches' menu in 'Log for <file>' window doesn't have 'Stashes' folder, while 'Log' window does have it.
Log: navigate to a commit (search without filter)
Occasionally, I need to review the code around a particular commit.
However, I can't seem to find a way to directly navigate to a particular commit without applying any filters.
I found it on gitkraken
but on smartgit
Subword navigation shortcuts (e.g. Ctrl+Alt+Left/Right)
As an alternative to Specific word boundary settings for hyphen & underscore detection (https://smartgit.userecho.com/communities/1/topics/1685-specific-word-boundary-settings-for-hyphen-underscore-detection, if link doesn't review it means it's still being reviewed by moderation), we could add commands with customisable shortcuts to navigate per subword (separated by hyphen/underscore *even* if current word boundary setting skips them).
Default shortcuts could be Ctrl+Alt+Left/Right (may conflict with some desktops), or empty. Personally I'd use Alt+Left/Right but I'll have to remove existing competing shortcuts (in fact it's just Alt+Left that is mapped to reveal previous commit, others like File Compare: Take Left/Right Block are more contextual so it's ok).
In this case the best combination would be to set all boundary settings to skip hyphens and underscores (either via options as suggested in the thread linked above, or hardcoded to always skip if everyone agrees), and so users can navigate full words with Ctrl+Left/Right and then more precisely over subwords with the new commands/shortcuts.
And of course both suggestions are compatible: we could define behavior for Ctrl+Left/Right to the most useful ones for us, and use sub-word navigation when we need to.
Specific word boundary settings for hyphen & underscore detection
This is a new request spawned from https://smartgit.userecho.com/communities/1/topics/1562-word-navigation-ctrlleftright-do-not-stop-before-and-after-every-space
Basically, word boundary has two modes based on:
Preferences > Low-level properties > styledtext.useOwnWordBoundaryDetection value
It affects both Ctrl+left/right navigation and double-click selection.
If true, SmartGit own detection is used
- stops at hyphens (not great for kebab-variables, but understandable for plain English compounded-words)
- skips underscores (good for snake_case variables)
- stops at left and right of spaces (annoying)
If false, system detection is used. For instance on Ubuntu 22.04 + Unity desktop I have:
- stops at hyphens (same as above)
- stops at underscores (may be annoying for snake_case variables when you don't want to edit them)
- stops only one at spaces (good)
In most cases I just want to navigate as fast as possible and skip underscores, stop only one at space and possibly stop at hyphens (e.g. in Python I don't use kebab-case so hyphens are just for compounded-words so it's ok to stop at them)
More granular options over how boundaries are defined would make it easier to get the navigation we want. They would only apply when styledtext.useOwnWordBoundaryDetection is true since otherwise system would take over.
Examples:
- styledtext.whenUsingOwnWordBoundaryDetectionStopOnceAtSpace (honestly I think this one should be true by default, and actually wouldn't even need an option to be false, not sure who would really use the "stop at left and right of space" case since in most cases you can just go to either side and press left/right)
- styledtext.whenUsingOwnWordBoundaryDetectionStopAtHyphen (currently true)
- styledtext.whenUsingOwnWordBoundaryDetectionStopAtUnderscore (currently false)
To be fair, if right now SmartGit's own boundary detection was "fixed" to stop only once per space it would be perfect for my setting, and there would be no need for options.
The options may be useful in different settings though.
You may survey other devs to decide whether a hardcoded change or full options (more time to implemented, but more flexible) is better.
Standard window, All Branches & Tags: use tree control
It would be nice if the branch structure in the Standard Windows view could be set like in the Log Windows view where SmartGit shows local branches and remote branches in a tree view. Also branches are grouped by paths:
I think the UI would be more consistent if the layout of "Local Files" and "History" tabs would be similar in the Standard Window:
History in the center of the window and commit messages and changed files to right.
Individual colors for entries in the branches window
Please allow individual coloring of the entries in the branch window (accessible via CTRL+SHIFT+2). It should be possible to define both the text color and the background color separately for each branch as well as depending on the status "checked out" and "not checked out".
For this purpose, it would be an option to define classes in the settings, e.g. "warn" or "deploy", and then specify "warn" with regular status has red text color, "warn" with status "checked out" has white text color with red background. One can then assign a class to individual branches in the branch list.
This way, branches where a push results in subsequent actions (e.g. deploy to production) can be clearly highlighted ( and their potential impact...).
record conflict resolution steps
In the following situation, I have to repeat manual work. It could be automated:
- I have a feature branch and merged in develop at some point
- Merging in develop resulted in conflicts that I resolved
- Some time later, the feature branch is rebased on the then-latest develop
- The conflicts I've resolved when merging in develop now appear again and need to be resolved again.
Could the steps to resolve the merge conflicts be recorded and applied again on reabase?
add groups and repos using a script / cmd
looking for a way to auto add (by script) a group with many repos in it from the command line.
should i edit the repository-grouping.yml ?
Standard window: (optionally) re-open submodules (tabs) on next startup of smartGit
Right now, open tabs of submodules are lost, when smartGit is closed. A option to keep them in the tabs until removed manually would be great.
Customer support service by UserEcho