*** empty log message ***
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProvider.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProvider.java
index d99a404..6bbefed 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProvider.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProvider.java
@@ -164,7 +164,7 @@
if (CVSProviderPlugin.getPlugin().getPruneEmptyDirectories())
localOptions.add(Checkout.PRUNE_EMPTY_DIRECTORIES);
// Add the options related to the CVSTag
- if (tag != null) {
+ if (tag != null && tag.getType() != CVSTag.HEAD) {
localOptions.add(Checkout.makeTagOption(tag));
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
index 5448ebfe..05e1a58 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
@@ -45,6 +45,7 @@
import org.eclipse.team.internal.ccvs.core.client.Update;
import org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption;
import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
+import org.eclipse.team.internal.ccvs.core.client.listeners.DiffListener;
import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
import org.eclipse.team.internal.ccvs.core.resources.CVSRemoteSyncElement;
@@ -502,11 +503,11 @@
s.open(progress);
try {
status = Command.DIFF.execute(s,
- Command.NO_GLOBAL_OPTIONS,
- options,
- arguments,
- null, // FIXME new DiffListener(stream),
- progress);
+ Command.NO_GLOBAL_OPTIONS,
+ options,
+ arguments,
+ new DiffListener(stream),
+ progress);
} finally {
s.close();
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
index e9a0696..fded633 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
@@ -213,7 +213,7 @@
try {
resources[i] = localRoot.getChild(arguments[i]);
} catch (CVSFileNotFoundException e) {
- // Done to allow non-managed resources to be used as arguments
+ // XXX Temporary fix to allow non-managed resources to be used as arguments
resources[i] = localRoot.getFile(arguments[i]);
}
}
@@ -484,7 +484,7 @@
}
public void send(Session session) throws CVSException {
if (option.length() != 0) super.send(session);
- }
+ }
}
/**
* Option subtype for local options that vary from command to command.
@@ -516,13 +516,16 @@
*/
public static LocalOption makeTagOption(CVSTag tag) {
int type = tag.getType();
- if (type == CVSTag.BRANCH || type == CVSTag.VERSION || type == CVSTag.HEAD) {
- return new LocalOption("-r", tag.getName());
- } else if (type == CVSTag.DATE) {
- return new LocalOption("-D", tag.getName());
- } else {
- // FIXME: can this ever happen??? throw an exception?
- return null;
+ switch (type) {
+ case CVSTag.BRANCH:
+ case CVSTag.VERSION:
+ return new LocalOption("-r", tag.getName());
+ case CVSTag.DATE:
+ return new LocalOption("-D", tag.getName());
+ default:
+ // tag must not be HEAD
+ throw new IllegalArgumentException("Sticky tag not " +
+ "valid for trunk (HEAD).");
}
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java
index 48fb1b8..953c61d 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java
@@ -6,6 +6,7 @@
*/
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.team.ccvs.core.CVSTag;
import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption;
import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
@@ -18,6 +19,20 @@
public static final LocalOption IGNORE_LOCAL_CHANGES = new LocalOption("-C");
public static final LocalOption RETRIEVE_ABSENT_DIRECTORIES = new LocalOption("-d");
+ /**
+ * Makes a -r or -D or -A option for a tag.
+ * Valid for: checkout export history rdiff update
+ */
+ public static LocalOption makeTagOption(CVSTag tag) {
+ int type = tag.getType();
+ switch (type) {
+ case CVSTag.HEAD:
+ return CLEAR_STICKY;
+ default:
+ return Command.makeTagOption(tag);
+ }
+ }
+
protected Update() { }
protected String getCommandId() {
return "update";