The eclipse metadata for a workspace is still a mess in eclipse 3.5. Not only is the file naming and structure inconsistent (what's with all the hidden files within hidden files, while some are not hidden in a rather random way) but it mixes things that should be persisted (such as preferences, and launch options) with things that should not be persisted (such as history and cache files). All of this makes it rather painful to try and version control a workspace efficiently so that one can use the important bits of a workspace in different machines with minimal fuss. For example, if the .metadata is in your version control files, doing a status results in reams of files that one does not want to version control, but if it is outside the tree then settings and launch configurations don't get added and can be a real pain to reconfigure every time.
My current strategy for each workspace involves:
Do you have ideas on keeping the workspace clean, portable, and version controlled yet manageable in size?