Problem: Eclipse's CVS merge feature (despite all your efforts) keeps showing tons of pseudo-conflicts (red conflict symbol with a superimposed white plus or cross sign, whatever it might mean). Solution: don't use Eclipse (for merging). Instead, fall back on the good old command-line CVS client; it's not that difficult.
Change to your project directory and issue a command like:
cvs -q update -d \ -j "VERSION_2_2:2008-11-24" \ -j VERSION_2_2 &> /tmp/merge.log
Here VERSION_2_2 is your source branch, from which the merging should occur. The first -j also contains a start tag (or date).
Inspect merge.log for mentions of "warning" and "conflict". Inspect the reported files and merge manually around the standard CVS conflict markers, i.e. >>>>, ==== and <<<<). Finally, delete all files whose names match the pattern .#* (created by the CVS client to indicate which files were affected by merge).
There is one catch here - the
extssh access mode routinely used by Eclipse is not recognized by the command-line CVS client, so you will have to replace
:extssh: strings by
:ext: in all
CVS/Root files within your project and set the environment variable
CVS_RSH=/usr/bin/ssh to emulate Eclipse's behavior (after you're
done revert the replacements).