I am in the process of upgrading from VS2008 to VS2010 and want to do some cleaning up. My main solution has 20 or so projects under it in a flat file space. However there is a grouping to the projects (some libraries, some client programs, some test programs etc) and I wanted to reorganise the physical disk layout of the projects in the appropriate manner. In addition my source control is VSS(1) so I want to keep its file structure aligned with the physical disk structure and keep the overall file history.
So what sort of tools are available to do this? Or am I better off cutting the solution to pieces and reassembling it in the desired locations?
There are a few SO questions that talk about the best layout for a solution, but none that I have seen that tell you how to get from A to B
How to refactor large projects in visual studio
Project layout on disk in visual studio
For example I want to go from "A"
Solution
|
|-Project1
|-Project2
|-Project3
|-Project4
to "B"
Solution
|
|-Group1
| |
| |-Project1
| |-Project2
|
|-Group2
|
|-Project3
|-Project4
update 1
I should have mentioned that I tried the obvious method of creating solution folders for "Group1" and "Group2" and then dragging the projects into their new locations under each folder. This works well for creating a logical organization of the projects within VS2010, but does not change the physical location of the projects on disk.
Update 2
I tried removing a project from the solution, physically moving it on disk and then adding it under a solution folder. This achieves the relocation on disk, but the project remembered where it was originally in VSS and linked up with those files, rather than VS2010 building a new project structure in VSS
Update 3
After thinking about it for a bit I have realized that what I am asking for is more how to realign VSS projects with the physical disk layout after I move the projects in VS2010. Fixing this will entail modifications to both the VSS project layout and the VS2010 project internals. So I have update the tags and question heading.
Update 4 - My manual solution
OK so I have worked out a very manually intensive method for moving things around:
Remove the project from the VS2010 solution
Move it to the new location on disk
Delete all VSS related files from the project
Open the project file in a text editor and strip out all VSS related entries (all those start with "Scc" )
Add the project back into the solution and re-establish any project to project references
Check the solution and the project back into VSS and close down VS2010
Open up VSS and delete the code only files from the new project location in VSS
Share in the files from the old location in VSS
Delete the files from the old location in VSS
Delete the old project location in VSS
Is this the best/only way of doing this?
Thanks
(1) Yes I know - VSS. However in the context that I am using it, it works perfectly fine and I have not had it put a foot wrong, and while I have explored other options I'm not about to change right now. So please, no comments about how I should move to the next best thing in source control. And if that doesn't get your hackles up, how about this: I actually use a currently available and actively supported commercial product that uses VSS as a backend, versioning data store!