[sync] Add cache provider for Git Change Set model

Base commit for improving Git Change Set model performance and reducing
memory footprint. It simply reduces number of created TreeWalks and
instead of keeping full JGit objects it contains only basic data needed
by synchronize view.

This implementation can change over time. It is possible that during
further refactoring of current Git Change Set implementation more data
will be needed in cache in such case I'll amend this commit.

Requires-JGit: I6fc62c8e6626f907e544b5bbe5d64e864a2c323f
Change-Id: If8dfa0251797aca56ddc825619500dc21885ba26
Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
[historyView] Support linking with commit editor

Opening the commit editor with the history view in link mode
will now set the input of the view to be the commit's repository
and the current commit being viewed will be selected once the
view loads

Bug: 368346
Change-Id: Icccc2d7032ba11b1ead5c993995efaca36251bf0
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
[sync] Add WorkingTreeChangeCache

Adds caching mechanism for retrieving working tree changes. This class
will be used by the new Git Change Set implementation.

Change-Id: I7aa21006a70bc742e5a798651c78159d5f5b1a78
Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
[sync] Add StagedChangeCache

Adds caching mechanism for retrieving staged changes. This class
will be used in feature by new Git Change Set implementation.

Change-Id: I38da79aeff5e20ceb14a6abcf0b19b068c50333a
Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
[repoView] Hide 'Submodules' node when no configuration exists

Only show the 'Submodules' node when the repository either
contains a '.gitmodules' file or has at least one 'submodule'
section in the config file

Bug: 367955
Change-Id: I1b8575bed7f018e1d4ee7273c4b83c8044232822
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Update .eclipse-iplog for 1.3.0

Change-Id: I8c50b30756b11fa777889a4ccb75cb969fc28b65
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Add an extension point to provide repository search

The new extension point can be used to contribute the ability to search
for repositories on a remote server. It will be used in a new version
of an import wizard. For this use case an implementor can provide a
Wizard page implementing such a search.

Bug: 361251
Change-Id: I4e3a3ff88dbb5642dd61c55d751f4be12e93f720
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Refactor GitCloneWizard

Extract reusable code to an abstract super class.

Bug: 361251
Change-Id: I94056fc75acde4e29b72dd5284cac97101b64e86
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Redesign GitImportWizard to include contributed clone sources

The GitImportWizard now includes the extensions of the
org.eclipse.egit.ui.cloneSourceProvider. The flow of pages is the same
as described in the Mock-Up which is attached to Bug 361251.

Bug: 361251
Change-Id: I957ee48121b24fd78a91fe5e2855130c4614649f
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Allow for repository configuration using GitRepositoryInfo

An extender of org.eclipse.egit.ui.cloneSourceProvider can specify
configuration settings using the class GitRepositoryInfo. This info is
used now in the clone step.

Change-Id: Ic65f07474083cd98fcc11dc22e8bfc4a284ec9d5
Signed-off-by: Sascha Scholz <sascha.scholz@gmail.com>
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Add an icon attribute to the cloneSourceProvider extension point

Change-Id: Ibac3450de851351131fe57e6bb7c78a2fc3d4d49
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Improve Exception Handling for Clone Source extension point

Change-Id: I27420bee1e1c513180a5aeae6d0985d766ef4244
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Redesign GitCloneWizard to include contributed clone sources

The GitCloneWizard now includes the extensions of the
org.eclipse.egit.ui.cloneSourceProvider.

Bug: 361251
Change-Id: Idfd4cc6378eb861188820f50254d425cd8f79553
New wizard to configure a remote as Gerrit

Bug: 357222
Change-Id: If1b2e062501650a7742ce2c857fa78ed55c11bb3
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Remove Gerrit Configuration Page from Clone Wizard

Now we have the possibility to plug in clone sources. The Gerrit
configuration will be provided by the appropriate Gerrit extension.

If this extension is not installed, or the user has cloned from
another source or using a custom URI, he can still configure the
remote as Gerrit in the context menu of the Repositories View.

Change-Id: Ia7f6654447e699d0b2d785efd852652b0a470d69
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Support double-click event on repository location page

Change-Id: I7cf1d936503c91f0d652cf5a1d1a1976e2edf881
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Improvements and fixes for clone wizard

- Allow repository search result to be passed to AbstractGitCloneWizard
and GitCloneWizard. The repository location page is skipped in this
case. If the search result provides a WizardPage, then it's shown,
otherwise the result is directly evaluated.
- As a side effect, this restores URI paste support in repositories view
- Skip repository location page if there's only one clone source
provider with a fixed location

Change-Id: I6e32cb0c5dea5a7689a5a99bc7ba50b2010170e2
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
HistoryView: allow to select Ref when creating a Branch

If the user selects a commit with a local or remote branch on it, the
user should be able to select one of these branches as base for the new
branch instead of always creating the new branch on the commit.

Change-Id: I6addd9ed5e555db132be2d71152bee87cc07a561
Signed-off-by: Mathias Kinzler <mathias.kinzler@sap.com>
Merge branch 'master' into stable-1.3

* master:
  HistoryView: allow to select Ref when creating a Branch

Change-Id: If342443ed7feb7c0480f8f094796f841e7ea1e13
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
[repoView] Show stashed commits

Adds a new root level node that displays a list of the stashed
commits that open in the commit editor when selected.

Future actions will be added to stash current work, apply
a selected commit, and drop a selected commit.

Change-Id: I6b7e5670a89c553acd95528fbb5906e75f1d4656