Back in June, I wrote a post on using baseless merges to establish a merge relationship between two items where neither was branched from the other. A week after I posted it, I had to go back and change it to say that baseless wouldn’t record merge history for v1, and thus you would only be able to merge items where one was a branch of the other.
So, if you have two folders, projectX and skunkWorksX, where neither is a branch of the other, you can establish a merge history between the two by running “tf merge /baseless projectX skunkWorksX /r” (or you can re-order the source and target, according to the direction in which you want to initially move changes). When you are done resolving the conflicts and check it in, you will be able to merge normally between the two with “tf merge projectX skunkWorksX /r” or “tf merge skunkWorksX /r” depending upon which direction you need to propagate changes.
In v1 you have to use the command line to perform baseless merges. Also, items that did not originally have a branch relationship will not show up in the Source Control Explorer in VS as able to be merged (you’ll have to use the command line). Those are pretty minor tradeoffs for a really useful feature, though.