Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2004-02-25 20:34:58 +0000
committerJean Michel-Lemieux2004-02-25 20:34:58 +0000
commit4a1ca77df6f4238416a8715a8c35819611d5992a (patch)
tree03e4ed09e94442352cb8c3143df59d3b22725627 /bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java
parenta650f9521c18cb3c840475358086bf5f4052a824 (diff)
downloadeclipse.platform.team-4a1ca77df6f4238416a8715a8c35819611d5992a.tar.gz
eclipse.platform.team-4a1ca77df6f4238416a8715a8c35819611d5992a.tar.xz
eclipse.platform.team-4a1ca77df6f4238416a8715a8c35819611d5992a.zip
SyncView API released to HEAD.
Diffstat (limited to 'bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java')
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java115
1 files changed, 8 insertions, 107 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java
index 478b08c3c..a51961d79 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java
@@ -11,43 +11,14 @@
package org.eclipse.team.internal.ccvs.core.resources;
import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.resources.*;
+import org.eclipse.core.runtime.*;
import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
+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;
import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
@@ -437,80 +408,11 @@ public class CVSWorkspaceRoot {
}
return remote;
}
-
- public static IRemoteSyncElement getRemoteSyncTree(IResource resource, CVSTag tag, IProgressMonitor progress) throws TeamException {
- ICVSResource managed = CVSWorkspaceRoot.getCVSResourceFor(resource);
- ICVSRemoteResource remote = CVSWorkspaceRoot.getRemoteResourceFor(resource);
- ICVSRemoteResource baseTree = null;
-
- // The resource doesn't have a remote base.
- // However, we still need to check to see if its been created remotely by a third party.
- if(resource.getType() == IResource.FILE) {
- baseTree = remote;
- ICVSRepositoryLocation location;
- if (remote == null) {
- // If there's no base for the file, get the repository location from the parent
- ICVSRemoteResource parent = CVSWorkspaceRoot.getRemoteResourceFor(resource.getParent());
- if (parent == null) {
- throw new CVSException(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTeamProvider.unmanagedParent", resource.getFullPath().toString()), null)); //$NON-NLS-1$
- }
- location = parent.getRepository();
- } else {
- location = remote.getRepository();
- }
- remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFile)managed, tag, progress);
- } else {
- if (remote == null) {
- remote = getRemoteTreeFromParent(resource, managed, tag, progress);
- } else {
- ICVSRepositoryLocation location = remote.getRepository();
- baseTree = RemoteFolderTreeBuilder.buildBaseTree((CVSRepositoryLocation)location, (ICVSFolder)managed, tag, progress);
- remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFolder)managed, tag, progress);
- }
- }
- return new CVSRemoteSyncElement(true /*three way*/, resource, baseTree, remote);
- }
-
- /**
- * Sync the given unshared project with the given repository and module.
- */
- public static IRemoteSyncElement getRemoteSyncTree(IProject project, ICVSRepositoryLocation location, String moduleName, CVSTag tag, IProgressMonitor progress) throws TeamException {
- if (CVSWorkspaceRoot.getCVSFolderFor(project).isCVSFolder()) {
- return getRemoteSyncTree(project, tag, progress);
- } else {
- progress.beginTask(null, 100);
- RemoteFolder folder = new RemoteFolder(null, location, moduleName, tag);
- RemoteFolderTree remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)folder.getRepository(), folder, folder.getTag(), Policy.subMonitorFor(progress, 80));
- CVSRemoteSyncElement tree = new CVSRemoteSyncElement(true /*three way*/, project, null, remote);
- tree.makeFoldersInSync(Policy.subMonitorFor(progress, 10));
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-
- progress.done();
- return tree;
- }
- }
-
- public static IRemoteSyncElement getRemoteSyncTree(IProject project, IResource[] resources, CVSTag tag, IProgressMonitor progress) throws TeamException {
- ICVSResource managed = CVSWorkspaceRoot.getCVSResourceFor(project);
- ICVSRemoteResource remote = CVSWorkspaceRoot.getRemoteResourceFor(project);
- if (remote == null) {
- return new CVSRemoteSyncElement(true /*three way*/, project, null, null);
- }
- ArrayList cvsResources = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- cvsResources.add(CVSWorkspaceRoot.getCVSResourceFor(resources[i]));
- }
- CVSRepositoryLocation location = (CVSRepositoryLocation)remote.getRepository();
- ICVSRemoteResource base = RemoteFolderTreeBuilder.buildBaseTree(location, (ICVSFolder)managed, tag, progress);
- remote = RemoteFolderTreeBuilder.buildRemoteTree(location, (ICVSFolder)managed, (ICVSResource[]) cvsResources.toArray(new ICVSResource[cvsResources.size()]), tag, progress);
- return new CVSRemoteSyncElement(true /*three way*/, project, base, remote);
- }
-
public static ICVSRemoteResource getRemoteTree(IResource resource, CVSTag tag, IProgressMonitor progress) throws TeamException {
return getRemoteTree(resource, tag, false /* cache file contents hint */, progress);
}
-
+
/**
* Return the remote tree that corresponds to the given local resource. Return
* <code>null</code> if the remote tree doesn't exist remotely or if the local
@@ -531,9 +433,8 @@ public class CVSWorkspaceRoot {
remote = getRemoteTreeFromParent(resource, managed, tag, Policy.subMonitorFor(progress, 50));
if (cacheFileContentsHint && remote != null && remote instanceof RemoteFile) {
RemoteFile file = (RemoteFile)remote;
- if (!file.isContentsCached()) {
- file.fetchContents(Policy.subMonitorFor(progress, 50));
- }
+ // get the storage for the file to ensure that the contents are cached
+ file.getStorage(Policy.subMonitorFor(progress, 50));
}
progress.done();
} else if(resource.getType() == IResource.FILE) {

Back to the top