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

Blame submenu up to x years

Thomas Hansen 7 years ago updated 7 years ago 3

Blame is great, but can be very slow.

I would like to recommend making blame into a submenu, or have blame open a selection dialog where the "from date" or "up to x months/years back.


This would prevent blame logs for larger files (or with massive histories) from taking several minutes to open, when all you really want to check might be who made a certain change in the last 6 months.

+2

Log window: shortcut to the Reveal command

Sergey Filippov 7 years ago updated by Pierre Goiffon 7 years ago 4

It would be convenient to make a shortcut to the Reveal command.

I suggest Ctrl+Click.

This combination is used in such products as Visual Studio, Microsoft Word, Microsoft Outlook, notepad++, so it will be familiar for many users.

+2

Commit dialog: make line lengths guides configurable and show cursor position

a doerfler 7 years ago updated by Thomas Singer 7 years ago 1

Not each project impose the same limits on how the commit message must be crafted.

Since the limits may also be "soft" limits, it would be great if one could see the current cursor position in some status bar (like :set ruler in vim, or any other text editor shows by default).

+2

Improve SmartGit memory usage for large repositories

Christopher Kline 7 years ago updated by Marc Strapetz 7 years ago 3

SmartGit's current memory usage is fairly excessive. In our 257,000 file repo, here's what I'm seeing when launching SmartGit64.exe without smartgit.vmoptions file:


  • 380 MB: sitting idle at the "Welcome to SmartGit!" dialog before selecting a repo
  • 816 MB: sitting idle after selecting repo and letting initial refresh complete
  • 860 MB: after opening a log window and then closing it
  • 952 MB: after opening a second repo in the same SmartGit instance, opening a log window and closing it
  • 952 MB: after closing the second repo and using Debug->Run GC a few times
  • At this point the "SmartGit is close to the configured memory limit" dialog pops up

In the past I've used the -Xmx2300m vm option to avoid the memory limit warning, but then SmartGit uses up closer to 2GB of RAM in normal usage (and "Run GC" does nothing to lower it).


This is a lot of memory to give up just to use source control, especially on the VMs we use for development. Would it be possible to do a pass to see if there's any unnecessarily large data structures or redundant data that could be de-duplicated?


+2
Completed

Refresh: improve .gitignore processing performance [SG-11113]

Zeblote 7 years ago updated by Marc Strapetz 7 years ago 28

I'm not sure what happens during refreshing, other than it counting up the files to ignore. But it could probably run in parallel for many files, right? That would help with large repos like Unreal Engine.

+2

Repairing broken repositories

Alexander Miloslavskiy 7 years ago 0

Recently, I have seen a few broken repositories, both on my computer and my team members' computers. I believe this is connected to SSD's, where failing to write cache (due to blue screen or power failure) will often turn a file into a handful of zeroes.

Repairing a repository is usually simple, git fsck will tell SHAs for objects that are corrupted, then one needs to find the same object on remote, or team member, or backup, or a copy of repository, and copy it to corrupted repository.


In practice, repairing by hand is more complicated:

1) Many people simply don't know how to repair a repository

2) Repairing by hand becomes more difficult when object is packed on healthy repository.


I suggest that a feature is added to SmartGit, which will search all known copies of repository for a healthy copy of corrupted object, and repair it.

+2

Custom git-flow workflow

Jezza 7 years ago updated 7 years ago 6

It would be awesome if, instead of you providing a git-flow implementation, let us just replace those buttons as links to some script files, or the like.

Would go a long way towards making smartgit viable to use.

+2

Support Mercurial Subrepositories

James 7 years ago 0

Currently Mercurial subrepositories aren't visible in the SmartGit gui.

Changes to the sub repository related files (.hgsub and .hgsubstate) are visible but there is no way of seeing the contents of the sub repository itself.


If you have a repository layout like below:


  • main-repo
    • sub-repo (points to ..\sub-repo)
  • sub-repo

When viewing main-repo in SmartGit I would expect to be able to also browse the nest sub-repo folder but it is missing from the UI.


There are also no commands for pulling and updating subrepositories.

+2
Completed

Show "File Filter" in log view

Zeblote 7 years ago updated by Thomas Singer 6 years ago 8

The files view in the main window has a search bar, but this is missing in the log view when comparing branches.

So if you're exploring a large repo finding the correct file might take a while.


Image 167


Image 171  <-- we need this in the log view


Building a tree view from the "Relative Directory" column would also be very useful!


+2

first change and last change buttons (e.g. |< and >| )

Philip Lijnzaad 7 years ago 0

It would be nice to have the following in the Changes window:

Currently there are the 'Previous Change' and 'Next Change' buttons (up and down arrow), but when reviewing it would be nice to skip back all the way to first change in the current file ( |< ) or even to the first of all changes (  |<< ). And likewise for Last Change in file ( >| ) or in all files ( >>| )