Team Foundation Continuous Merge Service

TFCMS automatically propagates changes made in branches to dependent branches within TFS.

Concepts: TFS Notification Service, MSMQ, Windows Services, TFS Client API
Development: C# and .Net 3.5, Visual Studio 2008

How does it work

  • TFCMS listens for events from TFS and places them into a Message Queue - this allows you to receive notifications from a variety of applications; including Windows Services.
  • Once the merge service receives the event it merges the branches and queries TFS for any conflicts.
    • For each conflict it determines the best merge action by asking a set of strategies for a confidence level.
    • If no strategy confidence is above a certain threshold it aborts the merge and creates a work item.
    • It then attempts to resolve the conflict using the most confident strategy.
    • If the strategy fails to resolve the conflict it dopes it for that specific conflict resolution round and starts over.
    • Once the conflicts have been resolved it attempts to check in the changes against the target branch.
    • Again, if that fails a work item is created.

If at any stage a work item is created the service stops listening for events and waits for the work item to be resolved. All check ins have the original committer, comments and work items associated with them.

Contributing

Contributors are welcome. You need to have experience with TFS as a VCS (Codeplex and/or corporate). Please contact Jonathan Dickinson with the following template:

Bio
Briefly describe yourself. Please include your real name and which country you hail from.

Value
Briefly describe what value you would bring to the project.

History
Provide a list of open source project you have been involved in. Try to provide a very brief summary of each.

Last edited Aug 7, 2009 at 1:38 PM by jcdickinson, version 5