Как убрать с полки изменения другого разработчика, которые включают библиотеки DLL или другие двоичные файлы?

Используя Team Foundation Server 2010, я пытаюсь избавиться от серии изменений, внесенных другим разработчиком в моей команде. Этот набор полок включает несколько пакетов Nuget, которые включают библиотеки DLL. Я получаю несколько ошибок по следующим направлениям:

Элемент $ / file / path / some.dll заблокирован для извлечения ПОЛЬЗОВАТЕЛЕМ в рабочей области MACHINENAME.

В 2008 году Мак Ноланд утверждал в своем блоге Незакрепление файлов, для которых отключено слияние файлов, что эта ошибка вызвана отключением слияния файлов. Это имеет смысл отключить слияние файлов для двоичных файлов. Основываясь на ошибке, я предполагаю, что TFS 2010 все еще использует утилиту слияния при снятии с полки (имеет смысл почему). Тем не менее, я не хочу включать слияние файлов для файлов dll.

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


person ahsteele    schedule 25.10.2013    source источник


Ответы (3)


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

Вы можете попытаться разблокировать файл с помощью следующей команды -

tf lock itemspec /lock:none /workspace:OtherUsersWorkspace

Вы должны иметь возможность определить рабочую область из сообщения об ошибке, и вам также необходимо указать пользователя - / workspace: WORKSPACE; идентификатор пользователя

person Dan Shield    schedule 25.10.2013
comment
Я уверен, что нам нужно выполнить это в командной строке. Но какое место. Не могли бы вы привести полный хороший пример / - person Ziggler; 02.01.2015
comment
@ziggler Вы должны иметь возможность включить параметр / server в приведенную выше команду. т.е. tf lock itemspec /lock:none /workspace:OtherUsersWOrkspace /server:TFSServerURL - person Dan Shield; 04.01.2015
comment
@dam - Я искал ответы, как будто нам нужно выполнить эти команды в командной строке Visual Studio, и нам нужно перейти в папку / расположение файла, как в моем случае D: \ TFS \ Source \ Development \ Cars, а затем запустить команды tf. - person Ziggler; 05.01.2015

В моем случае мой исходный код находится в указанном ниже месте на моей рабочей станции.

D: \ TFS \ Source \ Development \ Cars.

Я открыл командную строку Visual Studio в инструментах Visual Studio и запустил ее от имени администратора.

Я изменил свою командную строку, чтобы перейти к

D: \ TFS \ Source \ Development \ Cars

Выполнено ниже линии

D: \ TFS \ Source \ Development \ Cars> tf lock HE / * / lock: none / workspace: zigglerworkspace / login: ziggler / collection: ziggler1pxtfs01 \ WebProjects

zigglerworkspace - имя моей рабочей области

ziggler - мое имя пользователя

ziggler1pxtfs01 \ WebProjects - URL-адрес сервера TFS

Это освобождает блокировку всех файлов и папок в папке HE, которая находится по адресу

D: \ TFS \ Source \ Development \ Cars \ HE

person Ziggler    schedule 05.01.2015

  1. Установите Microsoft Team Foundation Server 2010 Power Tools

  2. Добавьте C:\Program Files (x86)\Microsoft Team Foundation Server 2010 Power Tools к вашему системному пути

  3. cd c: [какое-то место] \ "целевая рабочая область"

  4. tfpt unshelve /migrate "shelveset name";otherUserName /source:"$/ProjectName/Main/Source" /target:"$/ProjectName/Main/Target"

person Nayana Adassuriya    schedule 22.11.2016