Your comments
It it not run in the main thread, otherwise you would not be able to perform any UI operation while the search is running.
> One use case is you want to add a specific things from the arbitrary commit. and not bring all changes from that commit like git cherry pick. Go over file by file and add the specific things.
In general this won't work well with a Working Tree - Commit comparison because this diff will include all changes between Working Tree and the commit and not only the commit's changes as patch, rewritten to the working tree, i.e. what a cherry-pick will do. It will be easier and safer to cherry-pick the corresponding commit without committing the cherry-pick, then use e.g. the Index Editor to unstage unwanted changes.
What about the internal Changes view, internal Compare -- do they work? If you still can't get it to work, please setup a small, public test repository (e.g. at GitHub) for which we both can reproduce the problem.
I understand, but I doubt that it's a good idea because it will become too easy for users locking too much (or even the entire repository).
I'm not sure whether we really want to support locking of folders. Hence, I have reduced the topic to "multiple files" only. If you think folder locking is important enough post another topic for folders.
This is already possible when setting Low-Level Property "compare.applyGitFilters". For version 20.2, this will be the default.
Please contact smartgit@syntevo.com and send us logs according to: https://www.syntevo.com/doc/display/SG/Debugging
With version 20.1 we have combined Index and Working Tree into a single node and we don't plan to undo this change.
Regarding Working Tree vs. Commit diff, please vote for: https://smartgit.userecho.com/communities/1/topics/822-
Regarding editing the working tree when diffing against an arbitrary commit -- what's the use case here? Please comment at topic #822.
Customer support service by UserEcho
Sorry, this was indeed a misunderstanding, I should have checked your screenshots in more details. Either way, what you are asking for is technically and even conceptually not possible: on one hand there should be a filter which populates the graph, on the other hand, it should be possible to continue working which can obviously affect the graph. I think this would open up an endless amount of possible UI/interaction problems.