Clean up progress monitor management throughout EGit
commit7b8ecc9011162c64b2f8658d5c2c4cdba7212486
authorMatthias Sohn <matthias.sohn@sap.com>
Sat, 4 Feb 2017 00:36:40 +0000 (4 01:36 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Sat, 4 Feb 2017 00:36:40 +0000 (4 01:36 +0100)
treeb92120b027a517514f0102756e67bd0b0ebdd935
parent8549e454491ed6f37689ead035dd356f3b639e4c
Clean up progress monitor management throughout EGit

Use SubMonitor consistently. Make sure that the same monitor is not
passed on to two different operations: in such cases, the first may
consume all available ticks. Instead pass each operation their own
child monitor.

Refactor the EclipseGitProgressTransformer to use SubMonitor instead
of the deprecated SubProgressMonitor. This is now a simple infinite
progress implementation that gives a little nicer visual feedback.

For instance for a clone operation, the old implementation would
always have consumed all ticks after the "Receiving Objects" step,
and the progress bar could thus no longer advance during "Resolving
Deltas" and "Updating References", nor even later during the post-
clone tasks. With the new implementation, the progress bar advances
properly through all tasks.

Bug: 463910
Bug: 477696
Change-Id: I082ddc4fd3dfa6a8ce67f556dda6436abebd0150
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
44 files changed:
org.eclipse.egit.core/src/org/eclipse/egit/core/EclipseGitProgressTransformer.java
org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java
org.eclipse.egit.core/src/org/eclipse/egit/core/internal/ProjectReferenceImporter.java
org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties
org.eclipse.egit.core/src/org/eclipse/egit/core/op/AddToIndexOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/CloneOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/CommitOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/CreateLocalBranchOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/CreatePatchOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/DeleteBranchOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/DisconnectProviderOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/FetchOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/PushOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/RebaseOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/RenameBranchOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/StashCreateOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/StashDropOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/SubmoduleAddOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/SubmoduleSyncOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/SubmoduleUpdateOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/TagOperation.java
org.eclipse.egit.core/src/org/eclipse/egit/core/op/UntrackOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/FeatureCheckoutOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/FeatureListOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/FeatureRebaseOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/FeatureTrackOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/GitFlowOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/HotfixFinishOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/InitOperation.java
org.eclipse.egit.gitflow/src/org/eclipse/egit/gitflow/op/ReleaseFinishOperation.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchProjectTracker.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/AbstractGitCloneWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitCreateProjectViaWizardWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitImportWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitProjectsImportPage.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitSelectionDialog.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitCreatePatchWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/ImportChangedProjectsCommand.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/SharingWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/stash/StashCreateUI.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/SynchronizeFetchJob.java