By default, tf merge will not allow you to perform a merge between unrelated branches. The target branch either needs to be parent or a child of the source branch. Attempting to perform such a merge will display a error message similar to:
The item $/Product/Branch2 is not a branch of $/Product/Branch1
To perform a merge between unrelated branches, pass the /baseless switch.
The following example merges changeset 1001 from Branch1 to Branch2 performing a baseless merge.
tf merge /version:C1001~C1001 /baseless $/Product/Branch1 $/Product/Branch2
For more information on baseless merging, see How does "baseless merging" work? on Jim Lamb's Team Foundation Server FAQ:
http://blogs.msdn.com/jimlamb/articles/tfsfaq.aspx