From 8c17a082000e26a329e7c2fe78764a47d2df0a05 Mon Sep 17 00:00:00 2001
From: Jean Michel-Lemieux
Date: Wed, 24 Sep 2003 16:55:00 +0000
Subject: *** empty log message ***
---
bundles/org.eclipse.team.cvs.ui/.classpath | 4 +-
bundles/org.eclipse.team.cvs.ui/plugin.properties | 2 +-
bundles/org.eclipse.team.cvs.ui/plugin.xml | 2 +-
.../team/internal/ccvs/ui/AnnotateView.java | 14 +-
.../ccvs/ui/CVSAbstractResolutionGenerator.java | 70 -----
.../ccvs/ui/CVSAddResolutionGenerator.java | 134 ----------
.../internal/ccvs/ui/CVSLightweightDecorator.java | 5 +-
.../eclipse/team/internal/ccvs/ui/CVSUIPlugin.java | 13 +-
.../internal/ccvs/ui/HistoryTableProvider.java | 4 +
.../eclipse/team/internal/ccvs/ui/HistoryView.java | 229 ++++++++++++++---
.../team/internal/ccvs/ui/ICVSUIConstants.java | 11 +-
.../eclipse/team/internal/ccvs/ui/OverlayIcon.java | 80 ------
.../team/internal/ccvs/ui/OverlayIconCache.java | 1 +
.../internal/ccvs/ui/RemoteFileEditorInput.java | 9 +
.../ccvs/ui/RemoteRevisionQuickDiffProvider.java | 286 ++++++++++++++-------
.../team/internal/ccvs/ui/TagAsVersionDialog.java | 2 +-
.../ccvs/ui/WorkInProgressPreferencePage.java | 11 +-
.../ccvs/ui/actions/AddToWorkspaceAction.java | 2 +-
.../internal/ccvs/ui/actions/CheckoutAsAction.java | 3 +-
.../internal/ccvs/ui/actions/CommitAction.java | 2 +-
.../ui/actions/RestoreFromRepositoryAction.java | 2 +-
.../ccvs/ui/actions/ShowAnnotationAction.java | 2 +-
.../team/internal/ccvs/ui/actions/TagAction.java | 2 +-
.../team/internal/ccvs/ui/merge/MergeWizard.java | 44 +---
.../team/internal/ccvs/ui/messages.properties | 40 +--
.../ccvs/ui/model/BatchSimilarSchedulingRule.java | 33 ---
.../team/internal/ccvs/ui/model/CVSTagElement.java | 41 ++-
.../ccvs/ui/model/RemoteContentProvider.java | 32 ++-
.../ccvs/ui/model/RemoteFolderElement.java | 36 ++-
.../team/internal/ccvs/ui/model/RemoteModule.java | 4 +-
.../internal/ccvs/ui/model/VersionCategory.java | 4 +-
.../internal/ccvs/ui/operations/CVSOperation.java | 246 +++++++-----------
.../ui/operations/CVSWorkspaceModifyOperation.java | 43 ----
.../ccvs/ui/operations/CheckoutIntoOperation.java | 57 ++--
.../CheckoutMultipleProjectsOperation.java | 17 +-
.../ccvs/ui/operations/CheckoutOperation.java | 27 +-
.../ui/operations/CheckoutProjectOperation.java | 224 ++++++++--------
.../operations/CheckoutSingleProjectOperation.java | 30 +--
.../ui/operations/HasProjectMetaFileOperation.java | 19 +-
.../ui/operations/RepositoryProviderOperation.java | 10 +-
.../ccvs/ui/operations/SingleCommandOperation.java | 11 +-
.../ui/operations/TagInRepositoryOperation.java | 2 +-
.../internal/ccvs/ui/operations/TagOperation.java | 4 +-
.../ui/operations/UpdateOnlyMergableOperation.java | 2 +-
.../ccvs/ui/repo/CVSRepositoryPropertiesPage.java | 270 +++++++++++--------
.../team/internal/ccvs/ui/repo/RemoteViewPart.java | 2 +-
.../internal/ccvs/ui/repo/RemoveRootAction.java | 18 +-
.../internal/ccvs/ui/repo/RepositoriesView.java | 2 +-
.../ui/repo/RepositoriesViewContentHandler.java | 8 +-
.../internal/ccvs/ui/repo/RepositoryManager.java | 7 +-
.../team/internal/ccvs/ui/repo/RepositoryRoot.java | 13 +-
.../ccvs/ui/subscriber/CVSSubscriberAction.java | 65 ++++-
.../ccvs/ui/subscriber/MergeUpdateAction.java | 27 +-
.../ccvs/ui/subscriber/SafeUpdateAction.java | 8 +
.../ccvs/ui/subscriber/SubscriberCommitAction.java | 18 +-
.../subscriber/SubscriberConfirmMergedAction.java | 5 +
.../internal/ccvs/ui/subscriber/UpdateDialog.java | 2 +-
.../ccvs/ui/sync/CVSCatchupReleaseViewer.java | 2 +-
.../wizards/CheckoutAsLocationSelectionPage.java | 4 +-
.../ccvs/ui/wizards/CheckoutAsMainPage.java | 4 +-
.../ui/wizards/CheckoutAsProjectSelectionPage.java | 8 +-
.../ccvs/ui/wizards/RepositorySelectionPage.java | 1 +
.../internal/ccvs/ui/wizards/SharingWizard.java | 3 +-
63 files changed, 1193 insertions(+), 1090 deletions(-)
delete mode 100644 bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSAbstractResolutionGenerator.java
delete mode 100644 bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSAddResolutionGenerator.java
delete mode 100644 bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/OverlayIcon.java
delete mode 100644 bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BatchSimilarSchedulingRule.java
delete mode 100644 bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSWorkspaceModifyOperation.java
diff --git a/bundles/org.eclipse.team.cvs.ui/.classpath b/bundles/org.eclipse.team.cvs.ui/.classpath
index 07afd19ec..f47576389 100644
--- a/bundles/org.eclipse.team.cvs.ui/.classpath
+++ b/bundles/org.eclipse.team.cvs.ui/.classpath
@@ -1,15 +1,15 @@
-
+
+
-
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.properties b/bundles/org.eclipse.team.cvs.ui/plugin.properties
index b23ea563d..d471dc353 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.properties
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.properties
@@ -188,4 +188,4 @@ CVSWorkspaceSubscriber.merge.label=&Update
CVSWorkspaceSubscriber.merge.tooltip=Perform an update merge on the visible resources
WorkInProgress.name=Work In Progress
-CVSRemoteQuickDiffProvider=CVS Remote Revision
\ No newline at end of file
+CVSRemoteQuickDiffProvider.label=Latest CVS Revision
\ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.xml b/bundles/org.eclipse.team.cvs.ui/plugin.xml
index ecb437886..e4d6a5a6b 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.xml
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.xml
@@ -885,7 +885,7 @@
+ point="org.eclipse.ui.workbench.texteditor.quickDiffReferenceProvider">
null (in which case, code executed
+ * by the operation can attempt to obtain any scheduling rules they like but may be
+ * blocked by other jobs at that point) or a rule (e.g. IResource) that encompasses
+ * all scheduling rules used by code nested in the operation (in which case the
+ * operation wil not start until the encompassing rule is free but once the
+ * operation starts, nested rules will not block on any subsequent contained
+ * scheduling rules). By default, null
is returned.
+ * @return
*/
- public final void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- run(monitor, isModifiesWorkspace());
+ protected ISchedulingRule getSchedulingRule() {
+ return null;
}
-
+
+ /**
+ * Return whether the auto-build should be postponed whil ethe operation is running.
+ * The default is to postone a build.
+ * @return
+ */
+ protected boolean getPostponeBuild() {
+ return true;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
*/
- private void run(IProgressMonitor monitor, boolean wrapInModifiyOperation) throws InvocationTargetException, InterruptedException {
+ public final void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
startOperation();
try {
- if (wrapInModifiyOperation) {
- new CVSWorkspaceModifyOperation(this).run(monitor);
- } else {
- execute(monitor);
- }
+ execute(monitor);
endOperation();
} catch (CVSException e) {
- // TODO: errors may not be empty
+ // TODO: errors may not be empty (i.e. endOperation has not been executed)
throw new InvocationTargetException(e);
}
}
@@ -202,67 +144,42 @@ public abstract class CVSOperation implements IRunnableWithProgress {
}
/**
- * Subclasses must override to perform the operation
+ * Subclasses must override this method to perform the operation.
+ * Clients should never call this method directly.
+ *
* @param monitor
* @throws CVSException
* @throws InterruptedException
*/
- public abstract void execute(IProgressMonitor monitor) throws CVSException, InterruptedException;
+ protected abstract void execute(IProgressMonitor monitor) throws CVSException, InterruptedException;
- /**
- * @return
+ /*
+ * Return the ICVSRunnableContext which will be used to run the operation.
*/
- private IRunnableContext getRunnableContext() {
- if (runnableContext == null) {
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ private ICVSRunnableContext getCVSRunnableContext() {
+ if (cvsRunnableContext == null) {
+ if (canRunAsJob() && areJobsEnabled()) {
+ return new CVSNonblockingRunnableContext();
+ } else {
+ return new CVSBlockingRunnableContext(shell);
+ }
}
- return runnableContext;
+ return cvsRunnableContext;
}
-
+
/**
- * @param context
+ * Set the CVS runnable context to be used by the operation.
+ * Although this method can be used by clients, it's main
+ * purpose is to support the running of headless operations
+ * for testing purposes.
+ * @param cvsRunnableContext
*/
- public void setRunnableContext(IRunnableContext context) {
- this.runnableContext = context;
- }
-
- public boolean hasRunnableContext() {
- return runnableContext != null;
+ public void setCVSRunnableContext(ICVSRunnableContext cvsRunnableContext) {
+ this.cvsRunnableContext = cvsRunnableContext;
}
public Shell getShell() {
- if (isRunningAsJob()) {
- // We can't use the assigned shell as it may have been disposed
- // run in syncExec because callback is from an operation,
- // which is probably not running in the UI thread.
- final Shell[] newShell = new Shell[] { null };
- Display.getDefault().syncExec(
- new Runnable() {
- public void run() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window == null) {
- Display display = Display.getDefault();
- newShell[0] = new Shell(display);
- } else {
- newShell[0] = window.getShell();
- }
- }
- });
- return newShell[0];
- }
- return shell;
- }
-
- public void setShell(Shell shell) {
- this.shell = shell;
- }
-
- public boolean isInterruptable() {
- return interruptable;
- }
-
- public void setInterruptable(boolean b) {
- interruptable = b;
+ return getCVSRunnableContext().getShell();
}
public boolean isModifiesWorkspace() {
@@ -275,16 +192,39 @@ public abstract class CVSOperation implements IRunnableWithProgress {
protected void addError(IStatus status) {
if (status.isOK()) return;
+ if (isLastError(status)) return;
errors.add(status);
}
-
+
protected void collectStatus(IStatus status) {
+ if (isLastError(status)) return;
statusCount++;
if (!status.isOK()) addError(status);
}
protected void resetErrors() {
errors.clear();
+ statusCount = 0;
+ }
+
+ /**
+ * Get the last error taht occured. This can be useful when a method
+ * has a return type but wants to signal an error. The method in question
+ * can add the error using addError(IStatus)
and return null.
+ * The caller can then query the error using this method. Also, addError(IStatus)
+ * will not add the error if it is already on the end of the list (using identity comparison)
+ * which allows the caller to still perform a collectStatus(IStatus)
+ * to get a valid operation count.
+ * @return
+ */
+ protected IStatus getLastError() {
+ Assert.isTrue(errors.size() > 0);
+ IStatus status = (IStatus)errors.get(errors.size() - 1);
+ return status;
+ }
+
+ private boolean isLastError(IStatus status) {
+ return (errors.size() > 0 && getLastError() == status);
}
protected void handleErrors(IStatus[] errors) throws CVSException {
@@ -306,7 +246,7 @@ public abstract class CVSOperation implements IRunnableWithProgress {
}
protected String getErrorMessage(IStatus[] failures, int totalOperations) {
- return "Errors occured in " + failures.length + " of " + totalOperations + " operations.";
+ return Policy.bind("CVSOperation.0", String.valueOf(failures.length), String.valueOf(totalOperations)); //$NON-NLS-1$
}
/**
@@ -380,9 +320,5 @@ public abstract class CVSOperation implements IRunnableWithProgress {
* @return
*/
protected abstract String getTaskName();
-
- protected boolean isRunningAsJob() {
- return runningAsJob;
- }
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSWorkspaceModifyOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSWorkspaceModifyOperation.java
deleted file mode 100644
index df4b79483..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSWorkspaceModifyOperation.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * This class wraps a CVSOperation in a workspace modify operation.
- *
- */
-public class CVSWorkspaceModifyOperation extends WorkspaceModifyOperation {
-
- private CVSOperation operation;
-
- public CVSWorkspaceModifyOperation(CVSOperation operation) {
- super();
- this.operation = operation;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- synchronized protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException {
- try {
- operation.execute(monitor);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java
index 0bac821b6..27d518c72 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java
@@ -22,6 +22,8 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.core.TeamException;
@@ -105,19 +107,28 @@ public class CheckoutIntoOperation extends CheckoutOperation {
return recursive;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ protected IStatus checkout(ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException {
+ return checkout(folder, getLocalFolder(), isRecursive(), monitor);
+ }
+
/* (non-Javadoc)
* @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder[], org.eclipse.core.runtime.IProgressMonitor)
*/
protected void checkout(ICVSRemoteFolder[] folders, IProgressMonitor monitor) throws CVSException {
- ICVSFolder parentLocalFolder = getLocalFolder();
- boolean recurse = isRecursive();
- monitor.beginTask(null, 100 * folders.length + 100);
- for (int i = 0; i < folders.length; i++) {
- ICVSRemoteFolder folder = folders[i];
- checkout(folders[i], parentLocalFolder, recurse, Policy.subMonitorFor(monitor, 100));
+ monitor.beginTask(null, 100);
+ ISchedulingRule rule = getSchedulingRule();
+ try {
+ // Obtain a scheduling rule on the projects were about to overwrite
+ Platform.getJobManager().beginRule(rule);
+ super.checkout(folders, Policy.subMonitorFor(monitor, 90));
+ refreshRoot(getLocalRoot(getLocalFolder()), Policy.subMonitorFor(monitor, 10));
+ } finally {
+ Platform.getJobManager().endRule(rule);
+ monitor.done();
}
- refreshRoot(getLocalRoot(parentLocalFolder), Policy.subMonitorFor(monitor, 100));
- monitor.done();
}
/*
@@ -311,18 +322,19 @@ public class CheckoutIntoOperation extends CheckoutOperation {
return OK;
}
- private void checkout(final ICVSRemoteFolder remoteFolder, ICVSFolder parentFolder, boolean recurse, IProgressMonitor monitor) throws CVSException {
+ private IStatus checkout(final ICVSRemoteFolder remoteFolder, ICVSFolder parentFolder, boolean recurse, IProgressMonitor monitor) throws CVSException {
// Open a connection session to the repository
+ monitor.beginTask(null, 100);
ICVSRepositoryLocation repository = remoteFolder.getRepository();
Session session = new Session(repository, parentFolder);
try {
- session.open(Policy.subMonitorFor(monitor, 10));
+ session.open(Policy.subMonitorFor(monitor, 5), false /* read-only */);
// Determine which local folders will be affected
- ICVSFolder[] targetFolders = prepareLocalFolders(session, remoteFolder, parentFolder, localFolderName, Policy.subMonitorFor(monitor, 10));
+ ICVSFolder[] targetFolders = prepareLocalFolders(session, remoteFolder, parentFolder, localFolderName, Policy.subMonitorFor(monitor, 5));
if (targetFolders == null) {
// an error occured and has been added to the operation's error list
- return;
+ return getLastError();
}
// Add recurse option
@@ -350,14 +362,15 @@ public class CheckoutIntoOperation extends CheckoutOperation {
(LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]),
new String[] { remoteFolder.getRepositoryRelativePath() },
null,
- Policy.subMonitorFor(monitor, 10));
+ Policy.subMonitorFor(monitor, 80));
if (!status.isOK()) {
- addError(status);
- return;
+ return status;
}
manageFolders(targetFolders, repository.getLocation());
+ return OK;
+
} finally {
session.close();
}
@@ -406,4 +419,18 @@ public class CheckoutIntoOperation extends CheckoutOperation {
public String getName() {
return getTaskName();
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getSchedulingRule()
+ */
+ protected ISchedulingRule getSchedulingRule() {
+ try {
+ // Use the project of the target folder as the scheduling rule
+ return getLocalFolder().getIResource().getProject();
+ } catch (CVSException e) {
+ CVSUIPlugin.log(e);
+ return null;
+ }
+ }
+
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java
index 3cab1de2f..b840b1017 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java
@@ -12,9 +12,11 @@ package org.eclipse.team.internal.ccvs.ui.operations;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.Policy;
/**
* This operation checks out a multiple remote folders into the workspace.
@@ -42,17 +44,12 @@ public class CheckoutMultipleProjectsOperation extends CheckoutProjectOperation
if (targetLocation == null) return null;
return targetLocation.append(project.getName());
}
-
- protected String getTaskName() {
- ICVSRemoteFolder[] remoteFolders = getRemoteFolders();
- return Policy.bind("CheckoutMultipleProjectsOperation.taskName", new Integer(remoteFolders.length).toString()); //$NON-NLS-1$
- }
-
+
/* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation#getTargetProjects(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder[])
+ * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder, org.eclipse.core.runtime.IProgressMonitor)
*/
- protected IProject[] getTargetProjects(ICVSRemoteFolder[] folders) {
- return null;
+ protected IStatus checkout(ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException {
+ return checkout(folder, null, monitor);
}
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java
index fc27bd4d6..3b19f2c25 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java
@@ -11,6 +11,7 @@
package org.eclipse.team.internal.ccvs.ui.operations;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
@@ -26,9 +27,27 @@ public abstract class CheckoutOperation extends RemoteOperation {
* @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
*/
public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- String taskName = getTaskName();
- monitor.beginTask(taskName, 100);
- checkout(getRemoteFolders(), Policy.subMonitorFor(monitor, 100));
+ ICVSRemoteFolder[] folders = getRemoteFolders();
+ checkout(folders, monitor);
+ }
+
+ /**
+ * This method invokes checkout(ICVSRemoteFolder, IProgressMonitor)
+ * for each remote folder of the operation.
+ * @param folders the remote folders for the operation
+ * @param monitor the progress monitor
+ * @throws CVSException if an error occured that should prevent the remaining
+ * folders from being checked out
+ */
+ protected void checkout(ICVSRemoteFolder[] folders, IProgressMonitor monitor) throws CVSException {
+ monitor.beginTask(null, folders.length * 100);
+ for (int i = 0; i < folders.length; i++) {
+ ICVSRemoteFolder folder = folders[i];
+ IStatus result = checkout(folder, Policy.subMonitorFor(monitor, 100));
+ collectStatus(result);
+ Policy.checkCanceled(monitor);
+ }
+ monitor.done();
}
protected ICVSRemoteFolder[] getRemoteFolders() {
@@ -40,7 +59,7 @@ public abstract class CheckoutOperation extends RemoteOperation {
* @param folders
* @param monitor
*/
- protected abstract void checkout(ICVSRemoteFolder[] folders, IProgressMonitor monitor) throws CVSException;
+ protected abstract IStatus checkout(ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException;
/* (non-Javadoc)
* @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#canRunAsJob()
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java
index 4724af822..3d2c3a986 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java
@@ -26,6 +26,9 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.core.runtime.jobs.MultiRule;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.core.TeamException;
@@ -37,7 +40,6 @@ import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
import org.eclipse.team.internal.ccvs.core.ICVSFolder;
import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
import org.eclipse.team.internal.ccvs.core.client.Checkout;
import org.eclipse.team.internal.ccvs.core.client.Command;
import org.eclipse.team.internal.ccvs.core.client.Request;
@@ -46,7 +48,6 @@ import org.eclipse.team.internal.ccvs.core.client.Update;
import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
import org.eclipse.team.internal.ccvs.ui.Policy;
-
/**
* This class acts as an abstract class for checkout operations.
* It provides a few common methods.
@@ -63,27 +64,6 @@ public abstract class CheckoutProjectOperation extends CheckoutOperation {
super(shell, remoteFolders);
this.targetLocation = targetLocation;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void runInContext(IProgressMonitor monitor) throws CVSException, InterruptedException {
- String taskName = getTaskName();
- monitor.beginTask(taskName, 100);
- monitor.setTaskName(taskName);
- checkout(getRemoteFolders(), getTargetProjects(getRemoteFolders()), Policy.subMonitorFor(monitor, 100));
- }
-
- /**
- * @return
- */
- protected IProject[] getTargetProjects(ICVSRemoteFolder[] folders) {
- IProject[] projects = new IProject[folders.length];
- for (int i = 0; i < projects.length; i++) {
- projects[i] = ResourcesPlugin.getWorkspace().getRoot().getProject(folders[i].getName());
- }
- return projects;
- }
/**
* Create and open the project, using a custom location if there is one.
@@ -137,32 +117,6 @@ public abstract class CheckoutProjectOperation extends CheckoutOperation {
if (targetLocation == null) return null;
return new Path(targetLocation);
}
-
- /**
- * Checkout the remote resources into the local workspace. Each resource will
- * be checked out into the corresponding project. If the corresponding project is
- * null or if projects is null, the name of the remote resource is used as the name of the project.
- *
- * Resources existing in the local file system at the target project location but now
- * known to the workbench will be overwritten.
- */
- protected void checkout(ICVSRemoteFolder[] resources, IProject[] projects, IProgressMonitor pm) throws CVSException {
- try {
- pm.beginTask(null, 1000 * resources.length);
- for (int i=0;i 0 && currentSubcriber != null) {
+ ((CVSMergeSubscriber)currentSubcriber).merged(resources);
+ }
}
/* (non-Javadoc)
@@ -93,12 +96,13 @@ public class MergeUpdateAction extends SafeUpdateAction {
*/
protected void runSafeUpdate(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException {
if(nodes.length > 0) {
- TeamSubscriber subscriber = nodes[0].getSubscriber();
- if (!(subscriber instanceof CVSMergeSubscriber)) {
- throw new CVSException("Invalid subscriber: " + subscriber.getId());
+ // Assumption that all nodes are from the same subscriber.
+ currentSubcriber = nodes[0].getSubscriber();
+ if (!(currentSubcriber instanceof CVSMergeSubscriber)) {
+ throw new CVSException(Policy.bind("MergeUpdateAction.invalidSubscriber", currentSubcriber.getId().toString())); //$NON-NLS-1$
}
- CVSTag startTag = ((CVSMergeSubscriber)subscriber).getStartTag();
- CVSTag endTag = ((CVSMergeSubscriber)subscriber).getEndTag();
+ CVSTag startTag = ((CVSMergeSubscriber)currentSubcriber).getStartTag();
+ CVSTag endTag = ((CVSMergeSubscriber)currentSubcriber).getEndTag();
// Incoming additions require different handling then incoming changes and deletions
List additions = new ArrayList();
@@ -206,4 +210,11 @@ public class MergeUpdateAction extends SafeUpdateAction {
cvsFolder.mkdir();
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet)
+ */
+ protected String getJobName(SyncInfoSet syncSet) {
+ return Policy.bind("MergeUpdateAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java
index 02b747705..eea80dc1a 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java
@@ -333,4 +333,12 @@ public abstract class SafeUpdateAction extends CVSSubscriberAction {
protected String getErrorTitle() {
return Policy.bind("UpdateAction.update"); //$NON-NLS-1$
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet)
+ */
+ protected String getJobName(SyncInfoSet syncSet) {
+ return Policy.bind("UpdateAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
+ }
+
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java
index 344eeb4a9..ac6484938 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java
@@ -103,12 +103,8 @@ public class SubscriberCommitAction extends CVSSubscriberAction {
return true;
}
- /**
- * @param syncSet
- * @return
- */
private IResource[] getUnaddedResources(SyncInfoSet syncSet) throws CVSException {
- // TODO: should only get outgoing additions (since conflicting additions
+ // TODO: Should only get outgoing additions (since conflicting additions
// could be considered to be under version control already)
IResource[] resources = syncSet.getResources();
List result = new ArrayList();
@@ -200,7 +196,6 @@ public class SubscriberCommitAction extends CVSSubscriberAction {
}
break;
case SyncInfo.CONFLICTING:
- // TODO: what about conflicting deletions
// Convert the conflicting change to an outgoing change
makeOutgoing.add(changedNode);
break;
@@ -228,9 +223,6 @@ public class SubscriberCommitAction extends CVSSubscriberAction {
if (makeOutgoing.size() > 0) {
makeOutgoing((SyncInfo[]) makeOutgoing.toArray(new SyncInfo[makeInSync.size()]), Policy.subMonitorFor(monitor, makeOutgoing.size() * 100));
}
-
- // TODO: There was special handling for undoing incoming deletions
- // This should be handled by makeOutgoing but we'll need to verify
RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
if (additions.size() != 0) {
@@ -241,7 +233,6 @@ public class SubscriberCommitAction extends CVSSubscriberAction {
}
manager.commit((IResource[])commits.toArray(new IResource[commits.size()]), comment, Policy.subMonitorFor(monitor, commits.size() * 100));
- // TODO: are there any cases that need to have folders pruned?
} catch (TeamException e) {
throw CVSException.wrapException(e);
}
@@ -287,4 +278,11 @@ public class SubscriberCommitAction extends CVSSubscriberAction {
protected String getErrorTitle() {
return Policy.bind("CommitAction.commitFailed"); //$NON-NLS-1$
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet)
+ */
+ protected String getJobName(SyncInfoSet syncSet) {
+ return Policy.bind("CommitAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.java
index 1f07239f8..c8e06623a 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.java
@@ -60,5 +60,10 @@ public class SubscriberConfirmMergedAction extends CVSSubscriberAction {
}
}
+ protected boolean canRunAsJob() {
+ // There's no sense doing this operation in the background since
+ // it does not contact the server
+ return false;
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java
index 9513ff072..6b1445c85 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java
@@ -28,7 +28,7 @@ public class UpdateDialog extends SyncInfoSetDetailsDialog {
public static final int YES = IDialogConstants.YES_ID;
public UpdateDialog(Shell parentShell, SyncInfoSet syncSet) {
- super(parentShell, Policy.bind("UpdateDialog.overwriteTitle"), Policy.bind("UpdateDialog.overwriteDetailsTitle"), syncSet); //$NON-NLS-1$
+ super(parentShell, Policy.bind("UpdateDialog.overwriteTitle"), Policy.bind("UpdateDialog.overwriteDetailsTitle"), syncSet); //$NON-NLS-1$ //$NON-NLS-2$
}
/* (non-Javadoc)
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java
index 0c771623e..20b0255b7 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java
@@ -62,12 +62,12 @@ import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.HistoryView;
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.OverlayIcon;
import org.eclipse.team.internal.ccvs.ui.OverlayIconCache;
import org.eclipse.team.internal.ccvs.ui.Policy;
import org.eclipse.team.internal.ccvs.ui.merge.OverrideUpdateMergeAction;
import org.eclipse.team.internal.ccvs.ui.merge.UpdateMergeAction;
import org.eclipse.team.internal.ccvs.ui.merge.UpdateWithForcedJoinAction;
+import org.eclipse.team.internal.ui.OverlayIcon;
import org.eclipse.team.internal.ui.sync.CatchupReleaseViewer;
import org.eclipse.team.internal.ui.sync.ChangedTeamContainer;
import org.eclipse.team.internal.ui.sync.ITeamNode;
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java
index cceabd7ae..d8b708067 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java
@@ -43,7 +43,7 @@ import org.eclipse.team.internal.ccvs.ui.Policy;
*/
public class CheckoutAsLocationSelectionPage extends CVSWizardPage {
- public static final String NAME = "CheckoutAsLocationSelectionPage";
+ public static final String NAME = "CheckoutAsLocationSelectionPage"; //$NON-NLS-1$
private Button browseButton;
private Text locationPathField;
@@ -63,7 +63,7 @@ public class CheckoutAsLocationSelectionPage extends CVSWizardPage {
* @param description
*/
public CheckoutAsLocationSelectionPage(ImageDescriptor titleImage, ICVSRemoteFolder[] remoteFolders) {
- super(NAME, Policy.bind("CheckoutAsLocationSelectionPage.title"), titleImage, Policy.bind("CheckoutAsLocationSelectionPage.description"));
+ super(NAME, Policy.bind("CheckoutAsLocationSelectionPage.title"), titleImage, Policy.bind("CheckoutAsLocationSelectionPage.description")); //$NON-NLS-1$ //$NON-NLS-2$
this.remoteFolders = remoteFolders;
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java
index 6d2305e92..58e3f2e2e 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java
@@ -45,7 +45,7 @@ public class CheckoutAsMainPage extends CVSWizardPage {
private Text projectNameField;
private ICVSRemoteFolder[] folders;
- public static final String NAME = "CheckoutAsMainPage";
+ public static final String NAME = "CheckoutAsMainPage"; //$NON-NLS-1$
/**
* @param pageName
@@ -54,7 +54,7 @@ public class CheckoutAsMainPage extends CVSWizardPage {
* @param description
*/
public CheckoutAsMainPage(ImageDescriptor titleImage, ICVSRemoteFolder[] folders, boolean allowProjectConfiguration) {
- super(NAME, Policy.bind("CheckoutAsMainPage.title"), titleImage, Policy.bind("CheckoutAsMainPage.description")); //$NON-NLS-1$
+ super(NAME, Policy.bind("CheckoutAsMainPage.title"), titleImage, Policy.bind("CheckoutAsMainPage.description")); //$NON-NLS-1$ //$NON-NLS-2$
this.folders = folders;
this.allowProjectConfiguration = allowProjectConfiguration;
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java
index 7566de25e..9b57d1958 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java
@@ -52,7 +52,7 @@ import org.eclipse.team.internal.ccvs.ui.Policy;
*/
public class CheckoutAsProjectSelectionPage extends CVSWizardPage {
- public static final String NAME = "CheckoutAsProjectSelectionPage";
+ public static final String NAME = "CheckoutAsProjectSelectionPage"; //$NON-NLS-1$
private TreeViewer tree;
private Text nameField;
@@ -73,7 +73,7 @@ public class CheckoutAsProjectSelectionPage extends CVSWizardPage {
* @param titleImage
*/
public CheckoutAsProjectSelectionPage(ImageDescriptor titleImage, ICVSRemoteFolder[] remoteFolders) {
- super(NAME, Policy.bind("CheckoutAsProjectSelectionPage.title"), titleImage, Policy.bind("CheckoutAsProjectSelectionPage.description"));
+ super(NAME, Policy.bind("CheckoutAsProjectSelectionPage.title"), titleImage, Policy.bind("CheckoutAsProjectSelectionPage.description")); //$NON-NLS-1$ //$NON-NLS-2$
this.remoteFolders = remoteFolders;
}
@@ -227,7 +227,7 @@ public class CheckoutAsProjectSelectionPage extends CVSWizardPage {
}
/**
- * Method getValidTargetProjects returns the et of projects that match the provided criteria.
+ * Method getValidTargetProjects returns the set of projects that match the provided criteria.
* @return IResource
*/
private IProject[] getProjects(String root, boolean unshared) throws CVSException {
@@ -245,7 +245,7 @@ public class CheckoutAsProjectSelectionPage extends CVSWizardPage {
} else if (provider != null && provider.getID().equals(CVSProviderPlugin.getTypeId())) {
ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(project);
FolderSyncInfo info = cvsFolder.getFolderSyncInfo();
- if (root != null && root.equals(info.getRoot())) {
+ if (root != null && info != null && root.equals(info.getRoot())) {
validTargets.add(project);
}
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java
index 51c4d1c43..120c3acab 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java
@@ -62,6 +62,7 @@ public class RepositorySelectionPage extends CVSWizardPage {
Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL);
data.horizontalSpan = span;
+ data.widthHint = 200;
table.setLayoutData(data);
TableLayout layout = new TableLayout();
layout.addColumnData(new ColumnWeightData(100, true));
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
index 99e6aedf7..29527dbe4 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
@@ -303,8 +303,9 @@ public class SharingWizard extends Wizard implements IConfigurationWizard {
IWorkingSet workingSet = CVSUIPlugin.getWorkingSet(new IResource[] {project}, Policy.bind("SyncAction.workingSetName")); //$NON-NLS-1$)
view.setWorkingSet(workingSet);
view.selectSubscriber(CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber());
+ view.setMode(ISynchronizeView.OUTGOING_MODE);
} else {
- CVSUIPlugin.openError(getContainer().getShell(), Policy.bind("error"), Policy.bind("Error.unableToShowSyncView"), null);
+ CVSUIPlugin.openError(getContainer().getShell(), Policy.bind("error"), Policy.bind("Error.unableToShowSyncView"), null); //$NON-NLS-1$ //$NON-NLS-2$
}
}
} catch (InterruptedException e) {
--
cgit v1.2.3