*** 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";