registry key for fd
20 sec to 2 mins
[log] Simplify code & comments: no need to consider recent commit count

Just walk from the top of the log until found the first detail that
is not in the cache.

(cherry picked from commit 8ab7cfd8a7be6c4b7154c5bec2afdb9a09c8ca40)
[log] cleanup

(cherry picked from commit 5f1d22f3b418214a650ff90dfbd108c12f21821b)
[log] invokeAndWait instead of invokeLater

Otherwise instructions after runUnderModalProgress will race with
instructions inside invokeLater.

(cherry picked from commit 4701c074d9fa22e9c76796c384c1d4dd3cb17895)
[log] Preselect the first commit on log initialization

It also solves the problem of loading Changes in background right
after log initialization (IDEA-121969).

(cherry picked from commit 05308c79bdc8b050b7be689bd8ec739a3b866bcc)
[log] fix graph tests when called from idea ultimate

Use the absolute path to the test data dir, determined by utility method

(cherry picked from commit 3e873179d63f63eda6643454e83ece4986de72fb)
[log] IDEA-122429 Remember current value in branch/user filter popup

(cherry picked from commit 3a6a0bd8067b0c0e539e7c0ab4841678c9850a1b)
[log] move "Select..." up in multi-user filter to match multi-branch one

(cherry picked from commit 76f7706079f71de5316a0f5ad96e9bcdb8a3af7f)
[log] IDEA-122558 reset filters before applying new ones

(cherry picked from commit fdf2f791fd3dfb71819fbdad7bb893548c192f79)
[log] spelling

(cherry picked from commit eebccf13ffc52b474414e7ab4378f672d74fc126)
[log] IDEA-121948 Possibly fix "row doesn't exist" exception

executeWithoutRepaint was called twice during setting filters: in the
runUnderModalThread & in applyGraphFilters.
However, the VcsLogGraphTable wasn't aware of such possibility => the
very first unfreeze unfreezed everything, although details filters
were not yet applied.

* Remove the unnecessary executeWithoutRepaint from applyGraphFilters.
* Make it possible to call executeWithoutRepaint several times: use a
  counter instead of a boolean.

(cherry picked from commit ab8a24a868b7c2789b7260070c93eabcd8922858)
[log] IDEA-115897 Call applyFilters() on onFieldCleared().

Unfortunately the native SearchTextField doesn't call this method if
the cross button is clicked, so this fix won't have any effect until
that issue is fixed.

(cherry picked from commit 9c66c02ed202cc97184afc40f379d53af639c72e)
[log] Don't duplicate text in tooltip

(cherry picked from commit 224e701134863d4d9249e4de0ac20b092d9754aa)
[log] structure filter: increase the amount of max possible folders

Not sure why this limit is needed at all (apart from the command line
length limitations which can handle at least 100 paths in most cases
anyway).

(cherry picked from commit 7e4740ed855a0f5a3df566011ecdc5920971b094)
[log] IDEA-122300 Show full path in structure filter tooltip

If there are multiple files selected, show them all, but don't let
the tooltip to grow to much, so don't show more than 10 lines.

(cherry picked from commit 60c3bffe5c893a08b8e4e39d22185255049fd8b4)
[log] IDEA-117553 Optimize details loading: don't parse Changes at once

Instead parse them only when requested.

* Move parsing from GitLogRecord to separate class GitChangesParser.
* Introduce VcsChangesLazilyParsed details which accepts changes getter
  in the constructor and requests it only when getChanges() is called.
* Implement it by GitCommit: store unparsed objects received from
  Git and call GitChangesParser when needed.

(cherry picked from commit c3b9b90f6c26affd7e597ebf65db96de8f7e5860)
[git] cleanup

(cherry picked from commit f7f812c3db476673917c0fd2b57d0f3584d31b09)
[git] reuse parent logger

(cherry picked from commit adccc14281d8e8cc3185caf1205763d5dbdc31f9)
[git] cleanup

(cherry picked from commit 5b25e65482f8b3fe1f0950706b9cfe4ccd124478)