I’ve been going through here reading about similar question, and I haven’t been able to find what I was looking for. I hope you all can help me understand this better.
Where I work, I’ve been trying to take our ‘mega’ team project and break it up into more manageable team projects, so that we can build only what we need. I’ve done a proof of concept and it works great. Basically I isolate a solution (sln) as a team project (and all the projects that go with it), and then I have another team project that’s the common files (dlls or other sln project from the outsides). This was the best result after I went down the path of researching baseless merges (which is fun, and ended up not working as expected). Anyway, no baseless merge…
Update / Edit… mega breakdown:
$(MegaTeamProj)
$(MegaTeamProj)\Common\
$(MegaTeamProj)\SolutionA\
$(MegaTeamProj)\SolutionA\Aproject
$(MegaTeamProj)\SolutionA\Bproject
$(MegaTeamProj)\SolutionA\thesol.sln
$(MegaTeamProj)\SolutionB\
$(MegaTeamProj)\SolutionB\Aproject
$(MegaTeamProj)\SolutionB\Bproject
$(MegaTeamProj)\SolutionB\thesol.sln
Attempting to break this out into:
$(Common)
$(SolutionA)\Aproject
$(SolutionA)\Bproject
$(SolutionA)\thesol.sln
and
$(SolutionB)\Aproject
$(SolutionB)\Bproject
$(SolutionB)\thesol.sln
Where I struggle now is creating a new team project that retains all the history of the check in for that solution. If I were using svn, I could just clone the repository folder and delete what I didn’t need and commit (for example of my strategy thinking with TFS). Anyway, another sticking point is there is a 3rd party who actually maintains our TFS stuff (technical term 🙂 ). So I have admin abilities through Team Explorer to Create new projects (with reports) and so on…
I did try moving the folders / files (via the UI in the Source Control Explorer), and the history didn’t not follow over to the new team project. Obviously the history does migrate if I move folders or files within the same project.
How have you all approached this?
Thanks,
Kelly
@Betty was a wonderful help in discussing some of the issues, and I wish I could provide an answer for my question in how to migrate and preserve history. I’ve tried branching and moving between projects without success. It easily makes sense BTW. Each Team Project has its own sql db, and in our case the history is based off of the team project not the solutionA, B, etc… It also makes it difficult to attempt other solutions because we have a 3rd party providing us Source Control services (TFS and build agents).
In our case (where I work), it was OK with my director to copy files to a new Team Project. After we finished a release, I copied that project over. In this case our current structure remains in place. We just told our group to continue working in the new team project.
Doing so we have the following:
and we also have the newly created projects:
So now staff can continue to see old changes via MegaTeamProj, and do new dev in the respective team projects.
I do hope Microsoft things about ways to make this easier in the future, and I think between this and SVN, it makes me want to opt for it VS. TFS.