15

Environment

TFS 2010. Three branches: Main, Development and Release.

Question

I would like to easily retrieve a list of changesets that have not been fully merged into all three branches.

For Example

Lets says I have a changeset, 100, that was a bugfix and checked in directly into Release. I can use the Tracking feature to visualize that it exists only in Release.

But that requires me to know to look at that changeset. I'm looking for a generic list that would show me any changeset that exists in one branch, but not in all three.

What I know

I know I can compare Release to Main to see the differences. Is that my only option?

I try to associate changesets with work items, so I could query a list of non-closed work items and then as a 'rule', I could verify that a changeset has been fully merged before closing it. And perform code compare to verify.

quip
  • 3,666
  • 3
  • 32
  • 45

2 Answers2

21

From the Developer Command Prompt, you can also use the tf.exe merge command.

tf merge /candidate /recursive Release Main

will show you all the changesets that were made to Release but haven't been merged into Main.

Scott
  • 4,458
  • 1
  • 19
  • 27
13

You can get a simple list of changesets through the IDE by choosing the "Selected Changes" option when merging things onto a build.

Another option is to use the API. VersionControlServer has a property named GetMergeCandidates which returns an array of MergeCandidate which has the changeset and if it has been partially merged already as properties.

Sean Lynch
  • 1,604
  • 19
  • 29
  • Awesome. Getting the quick list from the Merge process will work for now. And when I have time I'll investigate using the API. Thanks! – quip Feb 16 '11 at 00:30