Update OpsHub has published an update to their utility that fixes the problem I encountered.
I am trying to migrate an on-premises Team Foundation Server 2010 to Visual Studio online using the OpsHub Visual Studio Online migration utility. It has successfully uploaded 1380 of 6585 change sets, but is stuck on one of them and will not continue. The error message for the problematic change set:
Changeset ID: 1417
OH-SCM-009: Error occurred while sync. TF400023: The local workspace could not be reconciled with the server.
If I open the TFS workspace in Visual Studio (by browsing to O:\w69_1), I get a very similar error message in a popup window:
Error
TF400023: The local workspace could not be reconciled with the server.
The Visual Studio Source Control console displays a dozen repetitions of the following error message:
TF14060: The item $/EDT/SingleProjectClient/Data cannot be deleted. One or more children have pending changes.
Browsing through the pending changes in the workspace, it is clear that $/EDT/SingleProjectClient/Data/AllProjects.sdf has a pending "merge, delete" change.
The "merge, delete" change was present in the original change set made on the on-premises team foundation server. The problematic changeset ID 1417 contains the following changes:
- $/EDT/SingleProjectClient/Data: delete
- $/EDT/SingleProjectClient/Data/AllProjects.sdf: merge, delete
I have tried to undo the pending change on $/EDT/SingleProjectClient/Data/AllProjects.sdf, but that doesn't help. The migration utility continues to issue the same error message (TF400023: the local workspace could not be reconciled with the server).
Stack trace from OpsHubTFSService.log
2015-02-06 12:16:47,834 [5] ERROR Error occured in thread of CheckinAll:TF400023: The local workspace could not be reconciled with the server.
at Microsoft.TeamFoundation.VersionControl.Client.LocalDataAccessLayer.<>c__DisplayClass23.b__1c(LocalWorkspaceProperties wp, WorkspaceVersionTable lv, LocalPendingChangesTable pc)
at Microsoft.TeamFoundation.VersionControl.Client.LocalWorkspaceTransaction.Execute(AllTablesTransaction toExecute)
at Microsoft.TeamFoundation.VersionControl.Client.LocalDataAccessLayer.ReconcileLocalWorkspace(Workspace workspace, WebServiceLayer webServiceLayer, Boolean unscannedReconcile, Boolean reconcileMissingFromDisk, Failure[]& failures, Boolean& pendingChangesUpdatedByServer)
at Microsoft.TeamFoundation.VersionControl.Client.WebServiceLayerLocalWorkspaces.ReconcileIfLocal(String workspaceName, String ownerName, Boolean unscannedReconcile, Boolean reconcileMissingLocalItems, Boolean skipIfAccessDenied, Boolean& reconciled)
at Microsoft.TeamFoundation.VersionControl.Client.WebServiceLayerLocalWorkspaces.CheckPendingChanges(String workspaceName, String ownerName, String[] serverItems)
at Microsoft.TeamFoundation.VersionControl.Client.Workspace.EvaluateCheckin2(CheckinEvaluationOptions options, IEnumerable`1 allChanges, IEnumerable`1 changes, String comment, CheckinNote checkinNote, WorkItemCheckinInfo[] workItemChanges)
at Service.Adapters.TFSCheckinWorkspaceContext.EvaluateCheckIn(List`1 changesToCommit, String comment, CheckinNote checkinNote, WorkItemCheckinInfo[] workItemChanges) in f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSCheckinWorkspaceContext.cs:line 2392
at Service.Adapters.TFSCheckinWorkspaceContext.checkin(String comment, WorkItemCheckinInfo[] workItemChanges, List`1 otherCheckInProperties, String checkinUser) in f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSCheckinWorkspaceContext.cs:line 2344
at Service.Adapters.TFSVCAdapter.checkIn(List`1 checkinItems, String checkinComment, String checkinUser, List`1 workitemId, List`1 otherCheckInProperties) in f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSVCAdapter.cs:line 123
at com.opshub.tfs.test.TFSWebService.<>c__DisplayClass2.b__0() in f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\TFSWebService.cs:line 692