Branching project and solution files

In the comments of an earlier post, Pier asked:

“When you branch (share and branch) an entire solution you make a 1:1 copy of the files in it, .sln file too! inside .sln file there are absolute sourcesafe paths of the projects in it and .sln file on the branch still points to original projects on the trunk... I have to change them by hand.
Does Hatteras resolve this strange problem?”

Good news, Pier - the answer is “yes” - but I'm sure you wanted to know at least a little more than yes or no. :)

Solutions and project files under source control will use relative paths, so branching shouldn't automatically break them. I'm sure we'll have to chase down a few corner cases relating to this, because this is one of those things where there simply is no easy answer, but it should “Just Work” for those who aren't going out of their way to create a weird Visual Studio / Hatteras environment.

I don't know a ton about solution and project file formats, but I know there's some ability to handle these sorts of complications in there. Relative paths and some hint paths related to source control are the answer. If anyone out there wants more specific details, let me know in the comments or via email - maybe I can work up a sample and walk you through how we deal with it, if there's interest. It's straying out of my area of direct experience but it's an interesting problem.