Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2005-02-08 19:07:48 +0000
committerMichael Valenta2005-02-08 19:07:48 +0000
commitf51ecc008732f2fe36ad5a53f8d0c3a6d974978f (patch)
treebe108772c515d1ee0bf2dc02adb2150b94c7e68f
parent8924560e47d5d2ca0824614e3c12aa87401d66da (diff)
downloadeclipse.platform.team-f51ecc008732f2fe36ad5a53f8d0c3a6d974978f.tar.gz
eclipse.platform.team-f51ecc008732f2fe36ad5a53f8d0c3a6d974978f.tar.xz
eclipse.platform.team-f51ecc008732f2fe36ad5a53f8d0c3a6d974978f.zip
Added commit resource mapping context required to see outgoing deletions
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java22
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java24
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UncommittedChangesDialog.java7
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CommitOperation.java9
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java3
5 files changed, 54 insertions, 11 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java
index c241058d3..a14ba9abd 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java
@@ -58,7 +58,7 @@ public class SubscriberResourceMappingContext extends ResourceMappingContext {
public boolean select(SyncInfo info, IProgressMonitor monitor) {
if (info != null) {
int direction = info.getKind() & SyncInfo.DIRECTION_MASK;
- // When updating, only outgoing and conflicting changes are needed
+ // When updating, only incoming and conflicting changes are needed
return direction == SyncInfo.INCOMING || direction == SyncInfo.CONFLICTING ;
}
return false;
@@ -66,6 +66,26 @@ public class SubscriberResourceMappingContext extends ResourceMappingContext {
});
}
+
+ /**
+ * Return a resource mapping context suitable for a check-in (or commit) operations.
+ * That is, operations that uploads the latest local changes to the
+ * server from the local workspace resources, typically creating a new version of the resource.
+ * @return a resource mapping context suitable for a check-in operations
+ */
+ public static ResourceMappingContext getCheckInContext(Subscriber subscriber) {
+ return new SubscriberResourceMappingContext(subscriber, new SyncInfoFilter() {
+ public boolean select(SyncInfo info, IProgressMonitor monitor) {
+ if (info != null) {
+ int direction = info.getKind() & SyncInfo.DIRECTION_MASK;
+ // When committing, only outgoing and conflicting changes are needed
+ return direction == SyncInfo.OUTGOING || direction == SyncInfo.CONFLICTING ;
+ }
+ return false;
+ }
+
+ });
+ }
/**
* Create a resource mapping context for the given subscriber
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java
index efad593bf..44bba0225 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java
@@ -21,9 +21,12 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.team.core.subscribers.SubscriberResourceMappingContext;
+import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
import org.eclipse.team.internal.ccvs.ui.Policy;
import org.eclipse.team.internal.ccvs.ui.wizards.CommitWizard;
+import org.eclipse.ui.PlatformUI;
/**
* Action for checking in files to a CVS provider.
@@ -35,13 +38,24 @@ public class CommitAction extends WorkspaceTraversalAction {
* @see CVSAction#execute(IAction)
*/
public void execute(IAction action) throws InvocationTargetException, InterruptedException {
+
+ final IResource [][] resources = new IResource[][] { null };
+
+ PlatformUI.getWorkbench().getProgressService().busyCursorWhile(new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ try {
+ resources[0] = getDeepResourcesToCommit(monitor);
+ } catch (CoreException e) {
+ throw new InvocationTargetException(e);
+ }
+ }
+ });
run(new IRunnableWithProgress() {
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
try {
- final IResource [] resources= getDeepResourcesToCommit();
- CommitWizard.run(shell, resources);
+ CommitWizard.run(shell, resources[0]);
} catch (CoreException e) {
throw new InvocationTargetException(e);
@@ -51,12 +65,14 @@ public class CommitAction extends WorkspaceTraversalAction {
}, false, PROGRESS_BUSYCURSOR);
}
- private IResource[] getDeepResourcesToCommit() throws CoreException {
+ private IResource[] getDeepResourcesToCommit(IProgressMonitor monitor) throws CoreException {
ResourceMapping[] mappings = getCVSResourceMappings();
List roots = new ArrayList();
for (int i = 0; i < mappings.length; i++) {
ResourceMapping mapping = mappings[i];
- ResourceTraversal[] traversals = mapping.getTraversals(null, null);
+ ResourceTraversal[] traversals = mapping.getTraversals(
+ SubscriberResourceMappingContext.getCheckInContext(CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber()),
+ monitor);
for (int j = 0; j < traversals.length; j++) {
ResourceTraversal traversal = traversals[j];
IResource[] resources = traversal.getResources();
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UncommittedChangesDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UncommittedChangesDialog.java
index e60c075c4..e0bd4019e 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UncommittedChangesDialog.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UncommittedChangesDialog.java
@@ -100,12 +100,7 @@ public abstract class UncommittedChangesDialog extends MappingSelectionDialog {
boolean matchesFilter(ResourceMapping mapping) {
try {
- mapping.accept(new SubscriberResourceMappingContext(subscriber, new SyncInfoFilter() {
- public boolean select(SyncInfo info, IProgressMonitor monitor) {
- return info != null && info.getKind() != SyncInfo.IN_SYNC;
- }
-
- }), new IResourceVisitor() {
+ mapping.accept(null, new IResourceVisitor() {
public boolean visit(IResource resource) throws CoreException {
SyncInfo info = subscriber.getSyncInfo(resource);
if (info != null && resourceFilter.select(info)) {
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 65d8c2db8..ba6caf867 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
@@ -14,8 +14,10 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.mapping.ResourceMapping;
+import org.eclipse.core.resources.mapping.ResourceMappingContext;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.team.core.subscribers.SubscriberResourceMappingContext;
import org.eclipse.team.internal.ccvs.core.*;
import org.eclipse.team.internal.ccvs.core.client.*;
import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
@@ -87,4 +89,11 @@ public class CommitOperation extends SingleCommandOperation {
protected boolean isServerModificationOperation() {
return true;
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getResourceMappingContext()
+ */
+ protected ResourceMappingContext getResourceMappingContext() {
+ return SubscriberResourceMappingContext.getCheckInContext(CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber());
+ }
}
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 27ff87460..051dd5142 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
@@ -144,6 +144,9 @@ public class UpdateOperation extends SingleCommandOperation {
return Policy.bind("UpdateAction.update"); //$NON-NLS-1$
}
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getResourceMappingContext()
+ */
protected ResourceMappingContext getResourceMappingContext() {
if (Update.IGNORE_LOCAL_CHANGES.isElementOf(getLocalOptions(false))) {
return SubscriberResourceMappingContext.getReplaceContext(CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber());

Back to the top