.net – Best strategy for branching SVN code and maintaining Visual Studio project references

netsvnvisual studio

We have a main visual studio project stored in SVN using the standard trunk/branches/tags structure. However, this project references external projects outside of this structure, so when we create a code branch all the references to the exteranl projects fail as they are one level out.

ie. trunk/MyProjectCode becomes branches/MyFeatureBranch/MyProjectCode after branching, and so due to this extra level of hierarchy any references to external projects fail.

What is the best approach to creating branches with as little friction as possible? I could write a script that modifies all the project references, or I could could change my local code layout so branches were actually a level down from trunk, so therefore a new branch would be on the same level. Any other suggestions/best practices?

Best Answer

When checking out from Subversion, your working directory doesn't have to reflect the same directory depth as in the repository. Using the command line for example purposes:

svn co svn://server/project/trunk project
svn co svn://server/project/branches/MyFeatureBranch project-feature

That way, you'll have two directories side by side called project and project-feature. This should avoid problems with differing directory depths and relative path references.