Bug 46135 Compare shows project name only in task field
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
index e7d023c..18dd6d5 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
@@ -116,7 +116,7 @@
 DeploymentProviderManager.15=An I/O error occurred while persisting the deployment configurations for project {0}.
 DeploymentProviderManager.16=Previously deployed folder {0} in project {1} no longer exists.
 DeploymentProviderManager.17=Previously deployed resource {0} in project {1} is now a file and cannot be deployed.
-SynchronizationCacheRefreshOperation.0={0}
+SynchronizationCacheRefreshOperation.0=Processing {0}
 SubscriberEventHandler.8=The members of folder {0} could not be retrieved: {1}
 SubscriberEventHandler.9=The synchronization state for resource {0} could not be determined: {1}
 SubscriberEventHandler.10=An internal error occurred processing subscriber events.
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java
index e18e2d7..aa61c5a 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java
@@ -143,12 +143,6 @@
 				return resource.getName();
 			}
 			String truncatedPath = toTruncatedPath(stringPath, split);
-			// Special handling when the root is a project.
-			// Append project name to the beginning of the path
-			IResource iResource = root.getIResource();
-			if (iResource != null && iResource.getType() == IResource.PROJECT) {
-				truncatedPath = iResource.getName() + Session.SERVER_SEPARATOR + truncatedPath;
-			}
 			return truncatedPath;
 		} catch(CVSException e) {
 			return resource.getName();
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
index 2e7dc4e..bbf7efe 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
@@ -1151,6 +1151,7 @@
 MergeSynchronizeParticipant.11=Root resource in cvs merge subscriber is no longer in workspace, ignoring: {0}
 MergeSynchronizeParticipant.12=Missing root resources for cvs merge subscriber: {0}
 DisconnectOperation.0=Disconnecting
+DisconnectOperation.1=Disconnecting {1}
 SubscriberConfirmMergedAction.0=Synchronization information is missing for resource {0}
 SubscriberConfirmMergedAction.jobName=Performing a CVS Mark as Merged operation on {0} resources.
 CVSSubscriberAction.0=Invalid attemp to make unsupervised resource {0} in-sync.
@@ -1219,9 +1220,13 @@
 CVSTeamProvider.makeBranch=Creating branch
 CVSTeamProvider.folderInfo=Updating folder synchronization information for project {0}
 CVSTeamProvider.updatingFolder=Updating {0}
+AddOperation.0=Adding {0}
 BranchOperation.0=Branching
+BranchOperation.1=Branching {0}
+CommitOperation.0=Committing {0}
+UpdateOperation.0=Updating {0}
+TagOperation.0=Tagging {0}
 RemoteAnnotationStorage.1=As error occurred computing the content type of remote resource {0}
-
 DateTagCategory.0=Dates
 DateTagDialog.0=Date (M/D/Y):
 DateTagDialog.1=Include time component in tag
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/AddOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/AddOperation.java
index 2765908..6164e3c 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/AddOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/AddOperation.java
@@ -48,6 +48,13 @@
 		return Policy.bind("AddAction.adding"); //$NON-NLS-1$
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
+	 */
+	protected String getTaskName(CVSTeamProvider provider) {
+		return Policy.bind("AddOperation.0", provider.getProject().getName()); //$NON-NLS-1$
+	}
+	
 	/*
 	 * Add the given resources to the project. 
 	 * <p>
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/BranchOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/BranchOperation.java
index cd82440..66fd343 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/BranchOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/BranchOperation.java
@@ -255,6 +255,13 @@
 		return Policy.bind("BranchOperation.0"); //$NON-NLS-1$
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
+	 */
+	protected String getTaskName(CVSTeamProvider provider) {
+		return Policy.bind("BranchOperation.1", provider.getProject().getName()); //$NON-NLS-1$
+	}
+	
 	/**
 	 * Answers <code>true</code> if all resources in the array have a sticky tag
 	 */
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CommitOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CommitOperation.java
index 860eb5e..55ec9da 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CommitOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CommitOperation.java
@@ -104,6 +104,13 @@
 	}
 	
 	/* (non-Javadoc)
+	 * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
+	 */
+	protected String getTaskName(CVSTeamProvider provider) {
+		return Policy.bind("CommitOperation.0", provider.getProject().getName()); //$NON-NLS-1$
+	}
+	
+	/* (non-Javadoc)
 	 * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getErrorMessage(org.eclipse.core.runtime.IStatus[], int)
 	 */
 	protected String getErrorMessage(IStatus[] failures, int totalOperations) {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java
index 36e08fc..0f3d5fe 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java
@@ -64,6 +64,13 @@
 	}
 
 	/* (non-Javadoc)
+	 * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
+	 */
+	protected String getTaskName(CVSTeamProvider provider) {
+		return Policy.bind("DisconnectOperation.1", provider.getProject().getName()); //$NON-NLS-1$
+	}
+	
+	/* (non-Javadoc)
 	 * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#canRunAsJob()
 	 */
 	public boolean canRunAsJob() {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java
index 29de94b..a144cad 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java
@@ -55,6 +55,7 @@
 			ISchedulingRule rule = getSchedulingRule(provider);
 			try {
 				Platform.getJobManager().beginRule(rule, monitor);
+				monitor.setTaskName(getTaskName(provider));
 				execute(provider, providerResources, subMonitor);
 			} finally {
 				Platform.getJobManager().endRule(rule);
@@ -63,6 +64,14 @@
 	}
 	
 	/**
+	 * Return the taskname to be shown in the progress monitor while operating
+	 * on the given provider.
+	 * @param provider the provider being processed
+	 * @return the taskname to be shown in the progress monitor
+	 */
+	protected abstract String getTaskName(CVSTeamProvider provider);
+
+	/**
 	 * Retgurn the scheduling rule to be obtained before work
 	 * begins on the given provider. By default, it is the provider's project.
 	 * This can be changed by subclasses.
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java
index d96d148..def9d34 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java
@@ -140,6 +140,13 @@
 	}
 	
 	/* (non-Javadoc)
+	 * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
+	 */
+	protected String getTaskName(CVSTeamProvider provider) {
+		return Policy.bind("TagOperation.0", provider.getProject().getName()); //$NON-NLS-1$
+	}
+	
+	/* (non-Javadoc)
 	 * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.java
index d353340..de30cb1 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.java
@@ -60,6 +60,13 @@
 		return Policy.bind("UpdateOnlyMergeable.taskName"); //$NON-NLS-1$
 	}
 
+	/* (non-Javadoc)
+	 * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
+	 */
+	protected String getTaskName(CVSTeamProvider provider) {
+		return Policy.bind("UpdateOperation.0", provider.getProject().getName()); //$NON-NLS-1$
+	}
+	
 	protected void addSkippedFiles(IFile[] files) {
 		skippedFiles.addAll(Arrays.asList(files));
 	}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java
index a76414d..2eff33e 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java
@@ -100,6 +100,13 @@
 		return Policy.bind("UpdateOperation.taskName"); //$NON-NLS-1$;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
+	 */
+	protected String getTaskName(CVSTeamProvider provider) {
+		return Policy.bind("UpdateOperation.0", provider.getProject().getName()); //$NON-NLS-1$
+	}
+	
 	/**
 	 * Return the listener that is used to process E and M messages.
 	 * The default is <code>null</code>.