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!

+2

Select two distant commits to compare

Marcel van Pinxteren 3 months ago updated by Daniel Siegl 3 months ago 1

Similar to `git diff <hash1> <hash2>` I want to select the first commit by searching in the log, mark it as "selected", then search the second commit, select it and do a compare. Alternatively, if a commit is selected, any commit can be clicked on to do "compare with selected". BeyondCompare has a similar behavior when selecting files from the Explorer.

Log window
+2

investigate diff should allow choosing commit rather that previous only

John 12 months ago 0

Currently, when investigating a file (right click file/investigate), the Diff view :

Image 828

only shows the diff between the selected file (New contents) and the previous version (Old contents).

It would be nice(r) if it was possible to select a previous version in the Navigation pane e.g:

Image 829

and have that replace the Old contents so one could compare (i.e. not unlike the functionality from using the working tree view and doing it there - just focused more in the Investigate window as then one is looking at the one file rather than the whole commit)

Investigate
+2

Specify which branch is going to be force-pushed

arcadius 1 year ago 0

It would be useful to see a name of the branch we're going to force-push.

Image 821


+2

File Log: filter files by the file

Clément Moyroud 1 year ago updated 1 year ago 5

When opening the file-specific log view and selecting two commits to show the diff, all the files modified between these two commits are shown. Since the intent is to look at the initially selected file, it would be much better if the filename was set by default in the filter, or maybe have an option to only show the logged file which would work across file renames.

Log window
+2

Add branch indicator for when behind master

Jeff Jensen 1 year ago 0

When a repo's master branch has incoming changes and the repo is checked out to master, SmartGit displays the helpful down arrow indicator. But, if the repo is checked out to a non-master branch, there is no indicator for the branch-to-master status (as the indicators are for the checked out branch). To learn if a repo's master branch has incoming changes to update and rebase my working branch on, I have to click on each repo to review it. This requires reviewing the graph to find those commits and see how they align - is the branch missing commits from master.

The current product I'm working on has over 20 repos. To help this, perhaps an indicator on a branch in the Branches view when the branch is behind on its master branch?

+2

Provide options to Fetch/Pull only the selected tracked branch

terablade2001 1 year ago updated by David Rees 6 months ago 1

Hi.

I've noticed that many times while I have selected a branch and want to only fetch or pull that specific branch which is set to tracked to a remote repository, there is no option to do it. The option "Remote->Fetch" seems to fetch all the branches from the selected repository, filling up the local remote references with a lot of not-want-to-download branch references and taking a lot of unnecessary time.

I'm currently working on Log Window, which seems to offer more functionality than Standard Window. So, on the Log Window I can not find a way to fetch/pull only the selected branch from it's tracked remote. This would be similar to the command "git fetch <tracked-remote-name> <selected-branch-name>" or "git pull <tracked-remote-name> <selected-branch-name>".

Thus, if there indeed no way to do this, is it possible to add commands "Remote->Fetch selected" and "Remote->Pull selected" in the Log window (and any window in general)? When clicking on these command it's expected the tracked remote branch of the selected branch to be fetched/pulled, and if the local selected branch is not tracked then to propose to set a remote track first. If the selected local branch is tracked but has been deleted from the tracked remote repository to just inform the user that the tracked remote branch doesn't exist anymore.

Thanks

Improve Git commands
+2

Repositories view: Open all the repositories of a Group via context menu

terablade2001 1 year ago updated by Thomas Singer 1 year ago 0

Hello,

I'd like to see in SmartGit the following additional options when we right-click (i.e. in windows) over a folder in the "Local Repositories" window:

- Open all repositories of the folder, keeping the current opened repositories intact. (i.e. option: "Open all, keep current tabs...")

- Open all repositories of the folder, replacing (closing all) the current opened repositories. (i.e. option: "Open all, replace tabs...")

The reason I think this feature is very important, is because we may use the SmartGit for multiple groups of repositories like i.e.:

- Different work projects (multiple groups of one to many repositories per project)

- Different personal projects (multiple groups of one to many repositories per project)


Having in mind that the "Local Repositories" window aids to organize our repositories in a hierarchical way under user-defined Folders, it would be great to have the option to right click on a folder and be able to select if we want to open all the repositories it contains at once, by just opening them and appending to already opened repositories we have in our tabs, or by firstly closing all the currently opened repositories that we have.

It seems like a simple addition to SmartGit, with two more options in "Local Repositories", which give us the new ability in organizing our groups (Folders) of repositories in "workspaces". Thus if I want to open my work's repositories of project #1, I just right click on the folder "Work/Project#1" and select "Open all, replace tabs..." and voila I have a "workspace" of opened repositories for this specific project. Otherwise we have to close and open manually multiple repositories..

Additionally it would be also necessary, when we open the folder's repositories, the order that we have set in the repositories tabs (Standard Window) in the past, to remain the same, and any new repositories in the folder to be added in the end. That would enhance the semantic idea of "workspaces".

Please think about it. I've seen similar utility in file-handling software, where you can store and restore the tabs of the folders you have set for the different projects. And I feel that SmartGit has already the underlying mechanisms ("Local Repositories" and folders) to support easily such a new functionality.

Thanks

Log window Repository Management Working Tree window
+2

Add Branch: automatically enable tracking if remote branch exists

Thomas Singer 1 year ago 0

When creating a branch in the Standard window for which a remote branch already exists, it currently is rejected to better check out the remote branch. However, sometimes this would cause problems, e.g. in combination with submodule or LFS changes. Hence it would be better to allow the creation of the branch at the specified commit, but configure the tracking for the remote branch.

Improve Git commands
+2

Add "Revert hunk" option in Changes-window

Anton 1 year ago updated 1 year ago 3

Add "Unstage Hunk" to (right) Index panel when comparing HEAD vs. Index (in context menu/hotkey).

Now it is only available in left pane.
It should do the same action as "Unstage Hunk" in left pane currently.

Changes view
+2

Simplify rebase of a child branch to a newer version of parent branch

George Bessonov 2 years ago updated by Thomas Singer 2 years ago 0

There is a common workflow to have some big feature branch with every small ticket having it's own small branch.

Small tickets get merged into the feature branch in some way, the way isn't related to the request.

As an author of some ticket branch you want to keep up with the feature branch.

For merges of other ticket branches, it's the old plain rebase/merge.

But time has come to rebase the feature branch onto a fresh develop/main/master/... version.

Somebody performs the rebase and solves all the conflicts.

Then you have to rebase your branch onto it and here is the pain: you have to solve all the conflicts solved in the original feature branch again.

My proposal is to add an option to simplify this: when some old commit in your branch (b1) is pointed by a local branch (b2-loc) which is diverged from it's tracked branch (b2-rem) and you rebase your branch (b1) onto a commit pointed by the diverged remote (b2-rem), add an option to "rebase only your changes".

The simplest way this option can work is to create a temporary branch on b1, hard reset b1 onto b2-rem, cherry-pick every commit from the temp branch into the new b1, starting from the one which has b2-loc as a parent, delete the temporary branch.

I personally perform this routine pretty often and I would like to have an option to do this in a single click.

When I do so, it's also inconvenient to solve conflicts your changes have with b2-rem, because mass cherry-pick breaks on conflict and you have to search for the conflicted commit from your changes and select every commit after to continue your cherry-pick, repeat on every conflict.