Служебная программа миграции Visual Studio Online не работает с TF400023

Обновление OpsHub опубликовал обновление своей утилиты, которое исправляет проблему, с которой я столкнулся.

Я пытаюсь перенести локальный Team Foundation Server 2010 в Visual Studio онлайн с помощью утилиты миграции OpsHub Visual Studio Online. Он успешно загрузил 1380 из 6585 наборов изменений, но застрял на одном из них и не будет продолжать. Сообщение об ошибке для проблемного набора изменений:

Идентификатор набора изменений: 1417

OH-SCM-009: Произошла ошибка во время синхронизации. TF400023: Локальное рабочее пространство не может быть согласовано с сервером.

Если я открываю рабочее пространство TFS в Visual Studio (перейдя к O:\w69_1), я получаю очень похожее сообщение об ошибке во всплывающем окне:

ошибка

TF400023: Локальное рабочее пространство не может быть согласовано с сервером.

Консоль Visual Studio Source Control отображает дюжину повторений следующего сообщения об ошибке:

TF14060: Элемент $/EDT/SingleProjectClient/Data не может быть удален. У одного или нескольких детей ожидающие изменения.

Просматривая ожидающие изменения в рабочей области, становится ясно, что в $/EDT/SingleProjectClient/Data/AllProjects.sdf есть ожидающие изменения "объединить, удалить".

Изменение "объединить, удалить" присутствовало в исходном наборе изменений, выполненном на локальном сервере Team Foundation. Идентификатор проблемного набора изменений 1417 содержит следующие изменения:

  • $/EDT/SingleProjectClient/Data: удалить
  • $/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, логическое несканированное повторное сопоставление, логическое согласование MissingFromDisk, отказоустойчивый источник ошибок и отказоустойчивость)

в Microsoft.TeamFoundation.VersionControl.Client.WebServiceLayerLocalWorkspaces.ReconcileIfLocal(Строка workspaceName, строка ownerName, логическое unscannedReconcile, логическое согласование MissingLocalItems, логическое скипирование, подтверждение доступа)

в Microsoft.TeamFoundation.VersionControl.Client.WebServiceLayerLocalWorkspaces.CheckPendingChanges(строковое рабочее пространство Name, строковое ownerName, строковое [] serverItems)

в Microsoft.TeamFoundation.VersionControl.Client.Workspace.EvaluateCheckin2(параметры CheckinEvaluationOptions, IEnumerable`1 allChanges, изменения IEnumerable`1, строковый комментарий, CheckinNote checkinNote, WorkItemCheckinInfo[] workItemChanges)

в Service.Adapters.TFSCheckinWorkspaceContext.EvaluateCheckIn(List`1 changesToCommit, комментарий строки, CheckinNote checkinNote, WorkItemCheckinInfo[] workItemChanges) в f:\Ashish Docs\Checkouts\OVSMWService_Works_Service_Works \ T \ T \ T \ T \ T \ T \ T \ T \ TF.cs: ​​строка 2392

в Service.Adapters.TFSCheckinWorkspaceContext.checkin(строковый комментарий, WorkItemCheckinInfo[] workItemChanges, список`1 otherCheckInProperties, строковый checkinUser) в f:\Ashish Docs\Checkouts\OVSMU-филиале \ Service-Service\ TSCWSCSWFS-TFSWSC \ TSCFC.cs: ​​строка 2344

в Service.Adapters.TFSVCAdapter.checkIn(Listin1 checkinItems, String checkinComment, String checkinUser, List`1 workitemId, List`1 otherCheckInProperties) в f:\Ashish Docs\Checkouts\OVSMU Филиал \OpsHubV2\Service\Service\ Service 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: строка 692

1 ответ

Если ваш сервер когда-либо был TFS 2005/8, вы можете оказаться в ситуации, когда удаление слиянием в прошлом никогда не завершалось.

В 2005/2008 году, если у вас были как обновления, так и удаление за одну операцию, вам пришлось сделать две проверки, чтобы завершить объединение. Тем не менее, пользовательский интерфейс, чтобы сказать вам, что был введен только в 2008 SP1 (AFAIR).

Я постоянно сталкивался с этой проблемой с помощью инструментов своевременной миграции и интеграции TFS. И поскольку слияние никогда не завершалось, ваш код полагается (или, возможно, делает) на текущую настройку. В вышеупомянутых инструментах я бы отредактировал данные входящей миграции, чтобы удалить сведения об удаленном в ожидании и позволить инструменту продолжить работу.

Инструмент OpsHub не подходит для угловых случаев, и вам может понадобиться OpsHub, чтобы показать вам, как решить их инструмент.

Другие вопросы по тегам