I have the following simplified setup:
~/Development/Repositories/ProjectA-trunk
~/Development/Repositories/ProjectA-branch
~/Development/workspace
~/Development/workspace/ProjectA
ProjectA is a symlink to ../Repositories/ProjectA-trunk. In an ideal world I'd be able to switch the link to point at ../Repositories/ProjectA-branch and then go refresh the project in Eclipse and be working on the branch.
In this unfortunate real world Eclipse, even though it says otherwise when importing the existing project initially, resolves the symlink and keeps the absolute path to the project in Properties>Resource>Location for "ProjectA", which is in this case ~/Development/Repositories/ProjectA-trunk. Therefore switching the symlink has no effect because Eclipse now thinks ProjectA lives at ~/Development/Repositories/ProjectA-trunk and not ~/Development/Repositories/ProjectA.
Does anybody have a solution or workaround or suggestion on how to set up your workspace to make working with branches like this work?
The symlink setup works for me with Mac OS and Eclipse (Indigo and Juno).
where foo is a symlink to whatever working copy I want to use.
When switching, I
rm ~/prj/fooandln -sanother working copy to foo. Refresh in Eclipse and it picks up the changes.The trick here was that my project is only partly in Java, i.e., I have the working copy main folder (foo) and below that Java, Perl, Postgres, and so on. When I link to the main folder (i.e.,
~/Documents/workspace/TheProject -> ~/prj/foo), Eclipse resolves the symlinks on importing and stores the resulting path in the project properties. Only when I have the symlink to the Java folder in the project (~/Documents/workspace/TheProject -> ~/prj/foo/Java, Eclipse preserves the symlinks.The whole symlink stuff is useful when you have different working copies of the same branch / trunk and need to switch between them. Eclipse cannot handle the same project name twice. I don't want to lose my working copy changes. Hence the symlink.