During synchronization with Team Foundation Server situations may arise where changes made on either system are in direct conflict with each other and user intervention is required. These situations are commonly referred to simply as ‘conflicts’ and can be classified as either an Edit/Edit conflict or a Workflow conflict.
An edit/edit conflict arises when the same field on an item has been modified to a different value in each system since the last synchronization. For example, if one member of your team modifies the name value of a previously synced story in TeamPulse and another member makes a different modification to the name in TFS, a conflict will be surfaced during the next synchronization.
Encountering and Resolving an Edit/Edit Conflict
The following scenario depicts steps that will lead to an edit/edit conflict situation and will show how TeamPulse surfaces this conflict for display to the user. It then shows how a user may choose to resolve this conflict via the provided interface.
In this scenario the following assumptions are made:
- A synchronization server entry has been successfully created in TeamPulse.
- A TeamPulse project using the Agile process template has been created and previously synchronized with an existing TFS project also using the Agile process template.
- A story named “Log in to web site” has been created and synchronized between the two systems successfully.
- The user who is resolving the conflict (Adam Barr in this case) has permission to edit stories in TeamPulse.
- Using the Telerik Work Item Manager to directly manipulate data within TFS, fellow project member Molly Clark opens the “Log in to web site” user story and modifies the Story Points value to 6.
- Using TeamPulse, project member Adam Barr opens the “Log in to web site” story and sets the value of the Estimate field to 2.
- Adam decides it is time to synchronize the project and selects Settings > TFS Sync Information from the ribbon.
- Adam ensures the “Log in to web site” story is marked for synchronization with TFS and then initiates a project synchronization by pressing the Synchronize Now button.
- When synchronization is complete, Adam is shown a message indicating that a conflict has occurred and is taken automatically to the Conflicts tab on the screen where he can see detailed information.
- Adam reviews the information provided within the Conflicts grid display. He sees that the Estimate value that he modified earlier is conflicting with the change that Molly made within TFS.
- In order to resolve this conflict Adam must decide which value is the correct value: the value of 2 that he himself entered into TeamPulse or instead the value of 6 that Molly entered in TFS.
- Adam consults with the team and a consensus is made that Molly’s value of 6 is more accurate. Adam selects the TFS Version button indicating to the system that the value within TeamPulse should be overwritten during the next synchronization with the value from TFS.
- Adam initiates a project synchronization. This time he is informed that synchronization was successful! The conflict has been resolved.
A workflow conflict arises when the status of an item has been modified in each system since the last synchronization. For example if a member of your team moves a previously synced story in TeamPulse from Ready to In Development within TeamPulse and another member moves the same story from Ready to Deleted in TFS, a workflow conflict will be surfaced during the next synchronization. While this may seem similar to an edit/edit conflict there are certain challenges represented by workflow conflicts that make resolution more difficult.
Encountering and Resolving a Workflow Conflict
The following scenario depicts steps that will lead to a workflow conflict situation and will show how TeamPulse surfaces this conflict for display to the user. It then shows how a user may resolve this conflict via the provided interface.
In this scenario the following assumptions are made:
- A synchronization server entry has been successfully created in TeamPulse.
- A TeamPulse project using the Agile process template has been created and previously synchronized with an existing TFS project also using the Agile process template.
- A story named “Log in to web site” has been created and synchronized between the two systems successfully.
- The user who is resolving the conflict (Adam Barr in this case) has permission to edit stories in TeamPulse.
- Using the Telerik Work Item Manager to directly manipulate data within TFS, fellow project member Molly Clark opens the “Log in to web site” user story and modifies the State value to Closed.
- Using TeamPulse, project member Adam Barr opens the “Log in to web site” story and sets the value of the Status field to Resolved.
- Adam decides it is time to synchronize the project and selects Settings > View TFS Sync Information from the ribbon.
- Adam ensures the “Log in to web site” story is marked for synchronization with TFS and then initiates a project synchronization by pressing the Synchronize Now button.
- When synchronization is complete, Adam is shown a message indicating that a conflict has occurred and is taken automatically to the Conflicts tab on the screen where he can see detailed information.
- Adam reviews the information provided within the Conflicts grid display. He sees that the Status value that he modified earlier is conflicting with the change that Molly Clark made within TFS.
- In order to resolve this conflict Adam must decide which value is the correct value: the value of Resolved that he himself entered into TeamPulse or the value of Closed that Molly Clark entered in TFS.
- Adam consults with the team and a consensus is made that Molly’s value of Closed is more accurate. Adam selects the TFS Version button indicating to the system that the value within TeamPulse should be overwritten during the next synchronization with the value from TFS.
- Adam initiates a project synchronization. This time he is informed that synchronization was successful! The conflict has been resolved.