bug 372862: CVS cache does not contain precise information about tags.

Fix for returning missing Date tags.
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
index 7b45f71..c977ff8 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
@@ -683,7 +683,7 @@
 	 * @return CVSTag[]
 	 */
 	public CVSTag[] getAllKnownTags(String remotePath) {
-		Set tags = new HashSet();
+		Set tags = new HashSet(dateTags);
 		addAllKnownTagsForParents(getKnownParentTagCacheEntryFor(remotePath),
 				tags);
 		TagCacheEntry entry = getTagCacheEntryFor(remotePath, false);
@@ -694,7 +694,7 @@
 	}
 
 	public CVSTag[] getAllKnownTags() {
-		Set tags = new HashSet();
+		Set tags = new HashSet(dateTags);
 		addAllKnownTagsForChildren(rootTagCacheEntry, tags);
 		return (CVSTag[]) tags.toArray(new CVSTag[tags.size()]);
 	}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java
index 98c4838..e70b28f 100644
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java
+++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java
@@ -11,6 +11,7 @@
 package org.eclipse.team.tests.ccvs.core.provider;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 import junit.framework.Test;
@@ -394,4 +395,22 @@
 		assertEquals(0, knownTags.length);
 	}
 
+	public void testDateTags() throws CoreException {
+		CVSTag dateTag = new CVSTag(new Date());
+		repositoryManager.addDateTag(getRepository(), dateTag);
+		// verify if date tags are returned by repository manager
+		CVSTag[] dateTags = repositoryManager.getDateTags(getRepository());
+		assertEquals(1, dateTags.length);
+		assertEquals(dateTag, dateTags[0]);
+		dateTags = repositoryManager.getKnownTags(getRepository(), CVSTag.DATE);
+		assertEquals(1, dateTags.length);
+		assertEquals(dateTag, dateTags[0]);
+		// verify if date tags are returned in list of known tags for every
+		// project
+		IProject project = createProject("Project_1", (String) null);
+		CVSTag[] allTags = repositoryManager.getKnownTags(CVSWorkspaceRoot
+				.getCVSFolderFor(project));
+		assertEquals(1, allTags.length);
+		assertEquals(dateTag, allTags[0]);
+	}
 }