Test .jar generation fixed
Test .jar generation fixed
[log] refactor & some API changes

Use a special interface to pass necessary parameters (the need of a
separate interface rather than just several parameters will be proved
later.

Move commits sorting stuff to GitLogProvider, since it is needed only
for Git.

Make VcsShortCommitDetails extend TimedVcsCommit. Although
ideologically this is incorrect (details are not a commit, they lay
"near" the commit), this is useful for stuff like commits sorting to
avoid convertations & map creation.
[log] IDEA-117553 optimize git log initialization & refresh

Don't walk down from tags.
Passing --tags to git log significantly slows down the command, if
there are many tags in the repository (which is common).
On the other hand, it makes sense only if there are heads without branch
or HEAD labels (which is rare).

On initialization: don't consider tags. It may cause the log to
blick, when the full log will be loaded and built and if tagged
branches existed, were in the first 1000 and their artifacts (nodes,
edges) were visible on the screen. We can survive it.

On refresh: check if new tags were created, check if they point to
commits which we didn't receive in the first 1000. If yes, then it is
such tagged-branches. Just query some commits walking down from these
tags and put them into the set of commits for refresh.

We need to pass previous & current refs for this algorythm, but we
don't want to expose it to all VcsLogProviders, since might be not
clear for the implementors why do they get these refs.
=> introduce a Requirements extension which is really passed to
VcsLogProviders.
[git] read current user on GitVcs activate

Reading current user introduces some slowdown to the log initialization,
while it actually will be used for some other Git plugin components
like commit dialog author field => it can be read at the beginning &
updated on roots change.
[log] Extend VcsShortCommitDetailsImpl from TimedVcsCommitImpl

To reuse correct equals & hashcode implementations.
Add warnings to javadocs.
[log] Remove duplicating implementation
[log] remove temp method VcsRef#getCommitIndex

It is not needed anymore - the only usage can be easily replaced via
direct hash-to-int conversion.
[log] remove dependency

VcsLogUserRegistry interns values on addUser => the only drawback on
removing of createUser() method is that many VcsUserImpl objects will
be temporary created, but all dups will be removed right after
they are added to the registry.

On the other hand we remove this not very nice dependency on the
VcsLogManager.
[log] GitLogProviderTest
[git] convert some tests to java
[git] cleanup
[log] Don't make defensive copying here: there is no need in it.
typo