TFS: List changesets that have not been merged

7k views Asked by At

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.

2

There are 2 answers

1
Sean Lynch On BEST ANSWER

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.

0
Scott On

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.