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?
You can accomplish the same thing by creating your repository on an already existing workspace. Eclipse uses the
.metadata
folder in the workspace to determine what projects exist. Then have your branches in the same directory (using git for example). Anytime you want to switch branches yougit checkout my_branch
and then refresh in Eclipse.In other words, don't use link, use
git
to manage the branches in the same directory.Edit: full procedure goes something like this. Clone the repo outside of Eclipse (because the import nags you if it's in your workspace). Import into your workspace. Delete the folder inside your workspace and clone the repo into your workspace.