Reload GitDocument for Quick Diff in job instead of UI thread

When doing a pull, commit or other operations that change refs, existing
GitDocuments are reloaded. GitDocument is used for Quick Diff, which is
active when the user uses Quick Diff, or when "Show Annotations" was
called.

Doing this possibly expensive operation (it can involve rename
detection) on the UI thread blocks the UI, so do it in a background job
instead. Note that RemoteRevisionQuickDiffProvider (for CVS) of
eclipse.platform.team does it the same way.

Bug: 413497
Change-Id: Iccac6ebce9c63c2ccc95bda28134519d2f379e1b
Signed-off-by: Robin Stocker <robin@nibor.org>
Check for uncommitted changes before rewording commits.

This checks for uncommitted changes in the repository and prompts the
user to clean them up before Modify > Reword from the history view
context menu is actually executed.

Change-Id: Ifc746367369510ad116505164f7c0ee4cb0937bd
Signed-off-by: Maik Schreiber <blizzy@blizzy.de>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Show Annotations: Fix incorrect annotations when having local changes

How to reproduce:

1. Add a few lines in the middle of a tracked file
2. Save the file
3. Execute "Show Annotations"

Expected: The annotations for the lines below the added ones should be
correct.
Actual: They are at the wrong location (too far down)

The problem is that BlameCommand also reads the local file content when
startCommit is not set. But in Eclipse, local changes are already
handled by the Quick Diff provider. So before, they were accounted for
twice. By only blaming HEAD, the Quick Diff logic can work correctly.

Bug: 388543
Change-Id: I62e677d4308672ead349b6806d3d74e9723cb05c
Signed-off-by: Robin Stocker <robin@nibor.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Open workspace version from context menu of the compare editor

Bug: 426614
Change-Id: I93393f73d0ba246c45e2d9918b06bcefd9334e1f
Signed-off-by: Konrad Kügler <swamblumat-eclipsebugs@yahoo.de>
Add ability to edit a commit directly from the history view.

This adds a new menu item Modify > Edit to the context menu of the
history view. It can be used to edit a commit, then manually amending
the commit afterwards.

An error will be displayed if the selected commit cannot be reached
from the current HEAD commit. This is done so as to avoid the need
to checkout another commit automatically before executing the edit
procedure.

Change-Id: Idef404f2d712cccb862a7eb11571a7a4151badb8
Signed-off-by: Maik Schreiber <blizzy@blizzy.de>