TFS Integration Tools - Issue: TF10141 No Files checked in as a result of a TFS check-in failure

TL;DR

Explains how to resolve TFS Integration Tools check-in failures (TF10141), covering conflict identification, manual resolution steps, and handling workspace issues.

22 August 2012
Written by Martin Hinshelwood
4 minute read
Comments
Subscribe

If you encounter a TFS check-in failure conflict type and you try the first option of “Retry the action”.

image

Figure: This conflict is generated during the final checkin.

The migration exists and you are left with some Purple columns in the UI.

image

Figure: Nice green UI covered with purple crap

This is followed by a strong sinking feeling after 14 hours of babysitting the migration… there are only 96 items left to go…

  • Update 2012-08-22 – I messed up on the final dialog… thanks to Jameson Miller for spotting this one.

Applies to

  • TFS Integration Tools (March 2012 Release)

Findings

Your first thought will be to click “Start” and run the migration again and it tells you that there are 96 items to be migrated.

image

Figure: Its going… its going…

After which you will be greeted with a “your migration was successful”, but don’t be fooled. This migration…. it is lying to you…

You need to look at the logs now, and low and behold:

Checkin failed - TF14080: The item ‘$/XXX XXXX/XXX/Version4_0-Next_Build/XXXAdmin/App_WebReferences/XXXXXXXWCF/Reference.svcmap’ has a pending merge / rollback conflict, run resolve before checking in.

To start moving forward we need to move back… delete the rule (“View Conflicts | View Rules”) and click “Start” again.

image

Figure: Delete this rule that you just added

And we end up back at the conflict resolution screen, but now armed with the knowledge that “Retry this action” is not going to work.

image

Figure: See… back to the start…

Now we need to specifically solve the problem and this problem is a gnarly one. We need to look at what is currently pending in TFS.

image

Figure: Figure out what is conflicting

Now while you can do this from the command line that is something that I am not comfortable with (sorry… not old enough Smile) but I can open TFS under that user account and resolve the conflict…

image

Figure: TFS Sidekicks to save the day.

If like me you are command line adverse, then you can install the Team Foundation Sidekicks along with the TFS 2010 API and gain access to the data that you are looking for. In this case it also tells me the Workspace that I need to load…

image

Figure: Load the offending workspace

Now we need to figure out the problem. To do that we need to look at the offending change and manually resolve the conflicts.

image

Figure: Woops they are not the same

This is an issue as the change from the original files is not replicated correctly. This could indeed be a big in TFS, the TFS Integration Platform or both but that small comfort does not help me now…

Solution

To move past this we need to manually resolve the conflicts and check-in. We can then take the original source check-in and along with the new target changeset resolve the conflict in the Integration Platform.

image

Figure: Resolution causes TF14092

Attempting to resolve the conflict in favour of the source by clicking “Take Source Branch Version” runs into the same problem that the TFS Integration Platform likely ran into when it was trying to achieve the same result.

Resolution causes TF14092: The item $/XXX/ cannot be changed. A parent of this item has a pending delete which must be checked in first.

This to me looks like it was because of the order that VC committed items  in TFS 2008 and how it is now committed in TFS 2012. If that is the case then the argument for which service the bug is in could be made either way…

However clicking “Take Target Brach Version” results in a successful merge but will leave those files in source control after the operation. I can however keep track of this additive data and resolve it permanently by deleting them as part of a clean up at the end..

image

Figure: Use the following changesets for the source and target system

Now that I have manually resolved the issue I can go back to my conflict in the TFS Integration Platform and manually wire up the source check-in to the target one that I just manually checked in…

In the context of this Conflict the Source does not refer to the Migration Source as you would think. It relates to the Source of the Conflict instead and in this case it is the “Migration Target”. So the source is the Migration Target and the Target is the Migration Source… and are we confused yet, coz I was!

Reference: TFS Integration Tools – VC Conflict “A namespace conflict has been detected” … what now?

After Jameson pointed this out to me I was muttering like a Pirate that has stubbed his toes for at least an hour…

Did this solve your conflict?

Smart Classifications

Each classification [Concepts, Categories, & Tags] was assigned using AI-powered semantic analysis and scored across relevance, depth, and alignment. Final decisions? Still human. Always traceable. Hover to see how it applies.

Comments
Subscribe

What to read next

Article

Subversion to TFS 2010: The migration engine is unable to resolve a conflict where two changes have the same target item

Explains how to resolve case sensitivity conflicts when migrating from Subversion to TFS 2010, including tools and steps to handle duplicate …

Read article
Article

TFS Integration Tools - Issue: TF14009: Cannot merge source into target because the target is underneath source

Explains the TF14009 error in TFS when merging a source into a subfolder of itself, its causes during migration, and practical workarounds …

Read article
Article Scrum

One Team Project Collection to rule them all - Consolidating Team Projects

Step-by-step guide to consolidating multiple Team Projects and Collections in TFS 2012 using the TFS Integration Platform, covering …

Read article