+8
Completed

Add "fast global search" capability for fast access to commit info and SmartGit commands

Christopher Kline 7 years ago updated by Thomas Singer 3 years ago 7

I would like to request a "fast global search" function similar to the "fuzzy finder" in the GitKraken client:


Youtube video


This provides instantaneous access to searching commits, accessing client commands, and initiating git operations in a single operation. 


Presumably it accomplishes this by creating some sort of background index using Lucene or something else.


Adding this would greatly improve the usability of SmartGit in various ways:

  • Avoid the slow, concentration-breaking process required to find commit info in the current SmartGit: 1) open log window, 2) wait for it to populate, 3) type search terms, 4) wait for log to re-filter, 5) search through the filtered results to find the right commit, 6) click on commit to see the details)
  • Avoid the frustration (see request 1, request 2) of trying to find SmartGit options that are currently spread across at least 5 different modal dialogs, many with nested sub-sections.
  • Make it easier to use SmartGit via the keyboard by removing the need to memorize keyboard shortcuts
  • Potentially (assuming some sort of background index), augment existing tools to provide faster access to commit data or to find associated commits. One idea might be to store "related commits" (commits that mention each other, commits reverting other commits, cherrypick commits and the original commit) in the index, so when looking at a commit you can easily jump to the "related" ones.
  • Help speed up searching while avoiding excessive memory use (see Marc's comment in this thread)


But mostly I just want an instantaneous way to search the commit history.


Another idea: with an index, it might be possible to cache off some of the information that DeepGit provides (e.g. code migration across renamed files, etc) so that it's quickly available within the normal Blame functionality.

What is still missing when using Ctrl+P and Ctrl+Shift+P?

From what I can tell, you cannot currently quickly search for the following using Ctrl-P or Ctrl-Shift-P:

  • Preferences (Edit > Preferences options)
  • Commits by commit message contents (i.e. quickly search for commits containing a specific string)
  • Commits by committer name

Having a quick key combo to search commits without needing to open the log first would be a big time saver. That's the thing I'm most looking forward to.

In the preferences you now can search for options. We won't duplicate this logic in the Ctrl+P command.

Commits by committer name: how would this help if you find hundreds of results?

Presumably any search results returned by Control-P would be ordered by relevance; in the case of commits by name, the most relevant in my opinion would be the most recent commits. My goal with this would be to have  super-fast way to see the most recent N commits by commiter name, or by message contents (as opposed to the current method of "open log, select the right branches, click in the filter window, type the search contents".