1

更新OpsHub 已发布其实用程序的更新,修复了我遇到的问题。

我正在尝试使用 OpsHub Visual Studio Online 迁移实用程序将本地 Team Foundation Server 2010 迁移到在线 Visual Studio。它已成功上传了 6585 个变更集中的 1380 个,但卡在其中一个上并且不会继续。有问题的更改集的错误消息:

变更集 ID:1417

OH-SCM-009:同步时出错。TF400023: 本地工作区无法与服务器协调。

如果我在 Visual Studio 中打开 TFS 工作区(通过浏览到 O:\w69_1),我会在弹出窗口中收到非常相似的错误消息:

错误

TF400023: 本地工作区无法与服务器协调。

Visual Studio 源代码控制控制台显示十几个重复以下错误消息:

TF14060: 项目 $/EDT/SingleProjectClient/Data 无法删除。一个或多个孩子有待处理的更改。

浏览工作区中的未决更改,很明显 $/EDT/SingleProjectClient/Data/AllProjects.sdf 有一个未决的“合并、删除”更改。

“合并、删除”更改存在于在本地团队基础服务器上进行的原始更改集中。有问题的变更集 ID 1417 包含以下更改:

  • $/EDT/SingleProjectClient/数据:删除
  • $/EDT/SingleProjectClient/Data/AllProjects.sdf:合并、删除

我试图撤消 $/EDT/SingleProjectClient/Data/AllProjects.sdf 上的待定更改,但这无济于事。迁移实用程序继续发出相同的错误消息(TF400023:本地工作区无法与服务器协调)。

来自 OpsHubTFSService.log 的堆栈跟踪

2015-02-06 12:16:47,834 [5] 错误 CheckinAll:TF400023 线程中发生错误:本地工作区无法与服务器协调。

在 Microsoft.TeamFoundation.VersionControl.Client.LocalDataAccessLayer.<>c__DisplayClass23.b__1c(LocalWorkspaceProperties wp,WorkspaceVersionTable lv,LocalPendingChangesTable pc)

在 Microsoft.TeamFoundation.VersionControl.Client.LocalWorkspaceTransaction.Execute(AllTablesTransaction toExecute)

在 Microsoft.TeamFoundation.VersionControl.Client.LocalDataAccessLayer.ReconcileLocalWorkspace(工作区工作区,WebServiceLayer webServiceLayer,布尔 unscannedReconcile,布尔 reconcileMissingFromDisk,Failure[]& 失败,Boolean&pendingChangesUpdatedByServer)

在 Microsoft.TeamFoundation.VersionControl.Client.WebServiceLayerLocalWorkspaces.ReconcileIfLocal(字符串工作区名称,字符串 ownerName,布尔 unscannedReconcile,布尔 reconcileMissingLocalItems,布尔skipIfAccessDenied,布尔和调和)

在 Microsoft.TeamFoundation.VersionControl.Client.WebServiceLayerLocalWorkspaces.CheckPendingChanges(字符串工作区名称,字符串所有者名称,字符串 [] serverItems)

在 Microsoft.TeamFoundation.VersionControl.Client.Workspace.EvaluateCheckin2(CheckinEvaluationOptions 选项,IEnumerable`1 allChanges,IEnumerable`1 更改,字符串注释,CheckinNote checkinNote,WorkItemCheckinInfo[] workItemChanges)

在 f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSCheckinWorkspaceContext 中的 Service.Adapters.TFSCheckinWorkspaceContext.EvaluateCheckIn(List`1 changesToCommit, String comment, CheckinNote checkinNote, WorkItemCheckinInfo[] workItemChanges) .cs:第 2392 行

在 f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSCheckinWorkspaceContext .cs:第 2344 行

在 f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\ 中的 Service.Adapters.TFSVCAdapter.checkIn(List`1 checkinItems, String checkinComment, String checkinUser, List`1 workitemId, List`1 otherCheckInProperties) TFSVersionControl\AdapterComponents\TFSVCAdapter.cs:第 123 行

在 com.opshub.tfs.test.TFSWebService.<>c__DisplayClass2.b__0() 在 f:\Ashish Docs\Checkouts\OVSMU Branch\OpsHubV2\TFSWCFServiceSource\Service\Service\TFSWebService.cs:line 692

4

1 回答 1

0

如果您的服务器曾经是 TFS 2005/8,您可能会遇到过去的合并删除从未完成的情况。

在 2005/2008 年,如果您在一次操作中同时进行了更新和删除,则必须进行两次签入才能完成合并。不过要告诉你的 UI 是在 2008 SP1 (AFAIR) 中才引入的。

我一直在使用及时迁移和 TFS 集成工具遇到这个问题。由于合并从未完成,您的代码弓依赖(或可能依赖)当前设置。在上述工具中,我将编辑传入的迁移数据以删除挂起删除的知识并允许该工具继续进行。

OpsHub 工具不适用于极端情况,您可能需要 OpsHub 向您展示如何使用他们的工具解决问题。

于 2015-02-07T07:46:23.343 回答