/* (non-Javadoc)
  * @see java.lang.Object#equals(java.lang.Object)
  */
 public boolean equals(Object other) {
   if (this == other) return true;
   if (!(other instanceof CVSCompareSubscriber)) return false;
   CVSCompareSubscriber s = (CVSCompareSubscriber) other;
   CVSResourceVariantTree tree1 = (CVSResourceVariantTree) getRemoteTree();
   CVSResourceVariantTree tree2 = (CVSResourceVariantTree) s.getRemoteTree();
   IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
   CVSTag tag1 = tree1.getTag(root);
   CVSTag tag2 = tree2.getTag(root);
   if (tag1 == null || tag2 == null) return false;
   return tag1.equals(tag2) && rootsEqual(s);
 }
 public CVSCompareSubscriber(IResource[] resources, CVSTag tag) {
   super(
       getUniqueId(),
       NLS.bind(CVSMessages.CVSCompareSubscriber_2, new String[] {tag.getName()})); //
   this.resources = resources;
   tree =
       new CVSResourceVariantTree(
           new SessionResourceVariantByteStore(), tag, getCacheFileContentsHint());
   initialize();
 }