Как принудительно удалить рабочее пространство TFS 2010 на клиенте, когда TFS-сервер больше не существует? - PullRequest
6 голосов
/ 15 февраля 2012

В настоящее время у меня есть сервер TFS 2010, работающий на сервере SERVER-1.На моем клиенте (MY-CLIENT) у меня работает VS2010, и у меня есть рабочее пространство, связывающее SERVER-1 с \ MY-CLIENT \ Development.Все хорошо.

Я играл с настройкой другого экземпляра TFS на SERVER-2.На моем клиенте я удалил исходное рабочее пространство SERVER-1 и создал новое рабочее пространство, связав SERVER-2 с \ MY-CLIENT \ Development.Все хорошо.

Закончив эксперименты с TFS на сервере SERVER-2, я заново создал образ машины (удалив сервер TFS на сервере SERVER-2).

Затем я вернулся к своемуклиентский компьютер, переподключенный к TFS на сервере SERVER-1 и попытка переназначения управления исходным кодом в мою папку для разработчиков.Однако теперь я получаю сообщение об ошибке " Путь \ MY-CLIENT \ Development уже сопоставлен в рабочей области MY-CLIENT; SERVER-2 \ Steve ."Теперь у меня есть проблема.

Итак, я понял из этого, что мне нужно было сначала удалить рабочее пространство SERVER-2 ПЕРЕД повторным созданием образа машины.К сожалению, я этого не делал.

Просматривая на некоторых форумах, я понимаю, что могу использовать инструмент командной строки, чтобы возможно удалить его:

tf workspace /delete MY-CLIENT;SERVER-2\Steve

Однако, когда я запускаю это, Я получаю сообщение о том, что « Сервисы Team Foundation недоступны с сервера http://SERVER -2: 8080 / tfs / development . »

Итак, вопросто, как заставить принудительно удалить рабочее пространство SERVER-2 на моем клиенте, чтобы я мог заново создать свое старое рабочее пространство SERVER-1?

Ответы [ 3 ]

16 голосов
/ 16 февраля 2012

Отображения рабочих папок для всех локальных рабочих областей хранятся в файле кэша контроля версий. Это позволяет вам загружать клиенты TFS, позволяя им находить информацию о сервере для данной локальной папки. Кроме того, он предоставит информацию об этом тесте, который вы просматриваете, что предотвращает сопоставление локальной папки с двумя разными серверами.

Чтобы очистить это (не пытаясь подключиться к серверу), вы можете использовать команду tf workspaces (обратите внимание на множественное число - команда workspaces работает с списком рабочих пространств , команда workspace работает на рабочей области и обычно требует подключения к серверу, на котором находится рабочая область.

Чтобы удалить все рабочие пространства для вашей удаленной коллекции проектов, вы можете сделать:

tf workspaces /remove:* /collection:http://server-2:8080/tfs/DefaultCollection

(Очевидно, замена URI коллекции проекта на URI для вашего удаленного сервера.)

1 голос
/ 30 апреля 2013

У меня была точно такая же проблема: после перемещения TFS-сервера на другую машину я не мог сопоставить локальную папку в VS2012 на старой машине, поскольку она по-прежнему была связана со старой рабочей областью, в которой TFS отрицало существование.После многих часов (и дней) поиска в Google и пробования разных вещей, ни одна из которых не работала (включая все команды "tf", удаление локального кэша и т. Д.), Я решил эту проблему:

  1. Отредактируйте фактическую базу данных сбора TFS на сервере TFS с помощью SQL Management Studio Express (например, «Tfs_DefaultCollection»)
  2. Найдите таблицу «dbo.tbl_Workspace» и отредактируйте ее
  3. Вы должны увидеть свойРабочее пространство "призрак" здесь
  4. Удалить строки
  5. Все в мире правильно
0 голосов
/ 15 февраля 2012

Параметр workspaceowner в команде удаления является необязательным.Можно ли выполнить удаление без этого параметра или это повредит другое рабочее пространство MY-CLIENT?

...