Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2002-03-07 19:59:12 +0000
committerMichael Valenta2002-03-07 19:59:12 +0000
commit5ae154e21d37755d5e9a8bfce913c842fde8ed57 (patch)
treeecda4551e7d2f5e62ad3b51f85cb82f169e87d2c
parentba05da684dedf2786eabe5d157e5ac888f1667b2 (diff)
downloadeclipse.platform.team-5ae154e21d37755d5e9a8bfce913c842fde8ed57.tar.gz
eclipse.platform.team-5ae154e21d37755d5e9a8bfce913c842fde8ed57.tar.xz
eclipse.platform.team-5ae154e21d37755d5e9a8bfce913c842fde8ed57.zip
10776: Team2.0 - weird progress information when tagging out-of-sync project
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java15
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java8
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java4
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java5
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java23
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties5
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java8
7 files changed, 62 insertions, 6 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
index 84882417b..58429dd3b 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
@@ -17,6 +17,7 @@ import org.eclipse.team.ccvs.core.ICVSFolder;
import org.eclipse.team.ccvs.core.ICVSResource;
import org.eclipse.team.ccvs.core.ICVSResourceVisitor;
import org.eclipse.team.internal.ccvs.core.CVSException;
+import org.eclipse.team.internal.ccvs.core.Policy;
import org.eclipse.team.internal.ccvs.core.resources.CVSEntryLineTag;
import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
@@ -39,7 +40,7 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor {
this.session = session;
this.sendQuestionable = sendQuestionable;
this.sendModifiedContents = sendModifiedContents;
- this.monitor = monitor;
+ this.monitor = Policy.infiniteSubMonitorFor(monitor, 256);
}
/**
@@ -80,6 +81,8 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor {
String localPath = mFolder.getRelativePath(session.getLocalRoot());
+ monitor.subTask(Policy.bind("AbstractStructureVisitor.sendingFolder", localPath));
+
// Deal with questionable directories
boolean isQuestionable = ! mFolder.isCVSFolder() || isOrphanedSubtree(mFolder);
if (isQuestionable) {
@@ -94,7 +97,7 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor {
// Send the directory to the server
String remotePath = mFolder.getRemoteLocation(session.getLocalRoot());
if (remotePath == null) {
- throw new CVSException("Unable to determine remote location for resource");
+ throw new CVSException(Policy.bind("AbstractStructureVisitor.noRemote"));
}
session.sendDirectory(localPath, remotePath);
@@ -115,6 +118,8 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor {
// Record that we sent this folder
recordLastSent(mFolder);
+
+ monitor.worked(1);
}
/**
@@ -192,9 +197,15 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor {
});
// Visit all the resources
+ session.setSendFileTitleKey(getSendFileTitleKey());
for (int i = 0; i < resourceList.size(); i++) {
((ICVSResource)resourceList.get(i)).accept(this);
}
+
+ monitor.done();
}
+ protected String getSendFileTitleKey() {
+ return "AbstractStructureVisitor.sendingFile";
+ }
} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java
index f0a41bed7..702dc336b 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java
@@ -13,6 +13,7 @@ import org.eclipse.team.ccvs.core.ICVSFile;
import org.eclipse.team.ccvs.core.ICVSFolder;
import org.eclipse.team.ccvs.core.ICVSResourceVisitor;
import org.eclipse.team.internal.ccvs.core.CVSException;
+import org.eclipse.team.internal.ccvs.core.Policy;
import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
import org.eclipse.team.internal.ccvs.core.util.FileNameMatcher;
@@ -47,7 +48,7 @@ class ImportStructureVisitor implements ICVSResourceVisitor {
String[] wrappers, IProgressMonitor monitor) {
this.session = session;
- this.monitor = monitor;
+ this.monitor = Policy.infiniteSubMonitorFor(monitor, 512);
this.wrappers = wrappers;
wrapMatcher = initWrapMatcher(wrappers);
}
@@ -124,7 +125,10 @@ class ImportStructureVisitor implements ICVSResourceVisitor {
return;
}
- session.sendConstructedDirectory(mFolder.getRelativePath(session.getLocalRoot()));
+ String localPath = mFolder.getRelativePath(session.getLocalRoot());
+ monitor.subTask(Policy.bind("AbstractStructureVisitor.sendingFolder", localPath));
+
+ session.sendConstructedDirectory(localPath);
mFolder.acceptChildren(this);
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java
index 2e7218155..253ac0847 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java
@@ -28,4 +28,8 @@ class ModifiedFileSender extends FileStructureVisitor {
super.sendFile(mFile);
}
}
+
+ protected String getSendFileTitleKey() {
+ return null;
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java
index 7e1d9583d..8ed125b4e 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java
@@ -56,6 +56,11 @@ public class RTag extends Command {
protected void sendLocalResourceState(Session session, GlobalOption[] globalOptions,
LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
throws CVSException {
+ // do nothing
+ }
+
+ protected void sendLocalWorkingDirectory(Session session) throws CVSException {
+ // do nothing
}
public IStatus execute(Session session, GlobalOption[] globalOptions,
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
index eec85888b..4541e0e84 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
@@ -81,6 +81,9 @@ public class Session {
// a shared buffer used for file transfers
private byte[] transferBuffer = null;
+
+ // The resource bundle key that provides the file sending message
+ private String sendFileTitleKey;
/**
* Creates a new CVS session, initially in the CLOSED state.
@@ -508,7 +511,7 @@ public class Session {
public void sendFile(ICVSFile file, boolean isBinary, IProgressMonitor monitor)
throws CVSException {
// update progress monitor
- String title = Policy.bind("Session.sending", new Object[]{ Util.toTruncatedPath(file, localRoot, 3) }); //$NON-NLS-1$
+ String title = Policy.bind(getSendFileTitleKey(), new Object[]{ Util.toTruncatedPath(file, localRoot, 3) }); //$NON-NLS-1$
monitor.subTask(Policy.bind("Session.transferNoSize", title)); //$NON-NLS-1$
// obtain an input stream for the file and its size
long size = file.getSize();
@@ -758,4 +761,22 @@ public class Session {
}
+ /**
+ * Gets the sendFileTitleKey.
+ * @return Returns a String
+ */
+ String getSendFileTitleKey() {
+ if (sendFileTitleKey == null)
+ return "Session.sending";
+ return sendFileTitleKey;
+ }
+
+ /**
+ * Sets the sendFileTitleKey.
+ * @param sendFileTitleKey The sendFileTitleKey to set
+ */
+ public void setSendFileTitleKey(String sendFileTitleKey) {
+ this.sendFileTitleKey = sendFileTitleKey;
+ }
+
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties
index 75080e132..19d9b713c 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties
@@ -2,6 +2,10 @@ org.eclipse.team.internal.provider.cvs.CVSException=CVS Error: {0}
ok=ok
+AbstractStructureVisitor.sendingFolder=Processing {0}
+AbstractStructureVisitor.sendingFile=Processing {0}
+AbstractStructureVisitor.noRemote=Unable to determine remote location for resource
+
CVSAuthenticationException.normal=Authentication error connecting to {0}
CVSAuthenticationException.detail=Authentication error: {0}
@@ -91,6 +95,7 @@ RemoteFolder.invalidChild=Invalid folder {0} received during remote operation
RemoteFolder.errorFetchingRevisions=Error fetching file revisions
RemoteFile.noContentsReceived=No contents received from server for {0}
+RemoteFolderTreeBuilder.buildingBase=Collecting local synchronization information
RemoteFolderTreeBuilder.receivingDelta=Receiving delta for {0}
RemoteFolderTreeBuilder.receivingRevision=Receiving revision for {0}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
index 31da9ae6f..625da9ee6 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
@@ -132,6 +132,7 @@ public class RemoteFolderTreeBuilder {
progress.beginTask(null, 100);
IProgressMonitor subProgress = Policy.infiniteSubMonitorFor(progress, 100);
subProgress.beginTask(null, 512); //$NON-NLS-1$
+ subProgress.subTask(Policy.bind("RemoteFolderTreeBuilder.buildingBase", root.getName()));
return builder.buildBaseTree(null, root, subProgress);
} finally {
progress.done();
@@ -152,9 +153,11 @@ public class RemoteFolderTreeBuilder {
try {
monitor.beginTask(null, 100);
+ Policy.checkCanceled(monitor);
Session session = new Session(repository, root, false);
session.open(Policy.subMonitorFor(monitor, 10));
try {
+ Policy.checkCanceled(monitor);
fetchDelta(session, Policy.subMonitorFor(monitor, 50));
if (projectDoesNotExist) {
return null;
@@ -197,6 +200,8 @@ public class RemoteFolderTreeBuilder {
*/
private RemoteFolderTree buildBaseTree(RemoteFolderTree parent, ICVSFolder local, IProgressMonitor monitor) throws CVSException {
+ Policy.checkCanceled(monitor);
+
// Create a remote folder tree corresponding to the local resource
RemoteFolderTree remote = new RemoteFolderTree(parent, local.getName(), repository, new Path(local.getFolderSyncInfo().getRepository()), local.getFolderSyncInfo().getTag());
@@ -207,7 +212,6 @@ public class RemoteFolderTreeBuilder {
ICVSFolder[] folders = local.getFolders();
for (int i=0;i<folders.length;i++) {
if (folders[i].isManaged() && folders[i].isCVSFolder()) {
- monitor.subTask("Building base for " + folders[i].getRelativePath(root));
monitor.worked(1);
children.add(buildBaseTree(remote, folders[i], monitor));
}
@@ -246,6 +250,8 @@ public class RemoteFolderTreeBuilder {
*/
private void buildRemoteTree(Session session, ICVSFolder local, RemoteFolderTree remote, IPath localPath, IProgressMonitor monitor) throws CVSException {
+ Policy.checkCanceled(monitor);
+
// Add the remote folder to the remote folder lookup table (used to update file revisions)
remoteFolderTable.put(remote.getFolderSyncInfo().getRemoteLocation(), remote);

Back to the top