As you know, we generally recommend against doing baseless merges for a variety of reasons. In general, with a good branching structure and process in place, the need for baseless merges is rare. I have recommended two scenarios
for which baseless merges are useful or necessary. One is to fix a branching structure, perhaps to resolve issues that crop up during an upgrade from TFS 2005 / 2008 to TFS 2010. Following such an upgrade a user may need to convert some branches to folders,
folders to branches or even reparent branches to get to the desired branch structure. Baseless merges are often necessary when doing branch reparenting.
The second example was where I recommended a baseless merge to a customer as one way of fixing a problem with restructuring the folders and branches within a Team Project. When this customer removed or added a new subfolder underneath
the Main branch, subsequent merges attempted to replicate this change even to prior releases where the customer wanted to retain the prior folder structure.
Essentially their folder structure was originally: $\abc\Main\src\website\demowebsite which was branched to Dev:
$\abc\Dev\DevTeam1\src\website\demowebsite and to a few releases: $\abc\Release1-0\src\website\demowebsite and
$\abc\Release2-0\src\website\demowebsite (branches are indicated in
The customer decided to remove the
website folder from the Main branch. But they wanted to be able to merge
Main to Release1-0 or Release2-0 without having the website folder removed from these target branches. I recommended a baseless merge as one way to solve this issue (do a baseless merge from
$\abc\Release1-0\src\website\demowebsite. This seemed to work - but don't ask me why they needed to do this :). For future releases they will merge
Main to Release3-0 so they can carry the new folder structure forward.
If you have any
suggestions for additional guidance, please feel free to suggest.
VS ALM Ranger