Merging: Not intuitive

Hello there,

I have this minor problem using the merge feature in Team System Source Control: I think it's unintuitive ;) When doing a merge, I always click "Merge..." on the branch which I want toupdate, not the source branch. But in the "Merge..." dialog, the clicked-on branch is now selected as the source path, not as the target path.

Is there a possibility to change this behaviour, so that I get a list of possible source paths for a specific target path instead of the other way around?

This is also a little bit of a work flow question: At our company, teamspull the changes from other teams, the changes do not getpushed. Right now, the "Merge" feature tends to favor push scenarios :)

Best regards,
Martin

[858 byte] By [DonMartin] at [2007-12-20]
# 1
I see how it might be nice to have a "merge TO this location" command. I'm not sure this has been considered. Some quick thoughts:
  • It would be less powerful than the current Merge Wizard because an item ordinarily has only one possible source path (branch parent) to "pull" from. It's easy to create multiple branches (children) of an item using the Branch command, but the only way to make an item have >1 parent is by abusing merge /baseless, which is only available from the command line at present. Do you have any items like this? It would help us to know more about your environment & workflow.
  • Clicking the source in SCE and then choosing the target within the dialog is consistent with how other commands work, e.g. Move, Branch, and Undelete (if /newname is implemented in the UI).
  • The rest of the choices in the Merge Wizard all pertain to the source. When you select which changesets to merge, or the date/label to merge up to, you're referring to things that happened in the source branch.
If you want to quickly see an item's possible source path, rightclick -> Properties -> Branches. (Note that it assumes a normal tree structure. Baseless merges can create arbitrary directed graphs, but they won't show up here.)
RichardBergMSFT at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Team Foundation Server - Version Control...
# 2
Thank you for your answer. You are partly right; this would be feature which would be less powerful than the current solution. But still, you usually have more than one possibility to merge from; either parent branches (Forward Integration), or child branches (Reverse Integration).

I guess, what I'm asking for is a feature which is in fact less powerful than the current merging feature, but (in my opinion) easier to use: Just select "Merge into..." and you'd get a dialog just asking what you want to merge from the either the parent branch or from a child branch. This would be easier to use in a FI/RI environment ("Pull the new changes from the common tools team main branch!").

As for your other question: No, right now we don't need baseless branches.

On your objections to this feature:

  • Consisteny: On the other hand, all other commands (except "Branch...") change the directory on which it was called in some way. The "Merge..." command changes an other directory/branch.
  • Choices pertain to source: Yes, but the choices affect what happens to the target; the source is not changed.
DonMartin at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Team Foundation Server - Version Control...
# 3
I see what you mean. Makes a lot more sense when you consider both RI & FI into a selected target. Branch/merge administration is on the short list of areas to improve in vNext.
RichardBergMSFT at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Team Foundation Server - Version Control...

Visual Studio Team System

Site Classified