Что вы делаете, если файл в TFS заблокирован кем-то другим?

StackOverflow https://stackoverflow.com/questions/268865

Вопрос

Кто-то покинул организацию, но перед уходом он заблокировал все файлы по неизвестной причине.

Как вы разблокируете их все, чтобы другие разработчики могли работать?

Это было полезно?

Решение

Для выполнения следующей операции вам нужно будет быть либо администратором проекта, в котором вы хотите отменить регистрацию, либо администратором Team Foundation, если вы хотите выполнить это во всех проектах.

Если у вас все еще есть имя пользователя этого человека, вы можете просто сделать что-то вроде этого:

  • Откройте командную строку Visual Studio (Пуск -> Программы -> Microsoft Visual Studio 200X -> Инструменты Visual Studio -> Командная строка Visual Studio 200X).
  • Выполните следующую команду:

блокировка tf /блокировка: отсутствует /рабочее пространство: имя рабочей области; ИМЯ ПОЛЬЗОВАТЕЛЯ /рекурсивный $/

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

рабочие пространства tf /владелец: имя пользователя

Дополнительные команды см. в разделе tf /?

Другие советы

Если разработчик покинул организацию, лучше всего удалить его рабочие области. Это разблокирует файлы для вас, но также освободит некоторые ресурсы на сервере.

См. следующий пост в блоге, который я написал по этой теме, когда это случилось со мной несколько лет назад.

http://www.woodwardweb.com/vsts/unlocking_files.html

Вы можете удалить рабочее пространство с помощью командной строки (tf.exe) или использовать превосходный TFS Sidekicks от Attrice.

Это был единственный способ решить эту проблему, который включал удаление рабочего пространства пользователя:

http://2toad.com/Blog/ 2012/1 / 27 /, как в управлении-ТПО-рабочие пространства

Если в сообщении об ошибке указано " элемент $ / ... заблокирован для извлечения someUser: 1 в рабочей области someMachine123. " тогда я использую команду:

tf workspace /delete /server:http://machinename:8080/tfs/DefaultCollection someMachine123;someUser:1

Между URL-адресом коллекции и someMachine123;someUser:1 есть только один пробел.

Обратите внимание, что я обратил внимание на тот факт, что в сообщении об ошибке пользователь упоминается как someUser:1, поэтому я имитировал это в команде. Недостаточно просто запустить команду только с someUser. Я не уверен, что означает: 1, но, суть в том, имитируйте сообщение об ошибке.

Обратите внимание, что на сервере должен быть указан полный путь к коллекции, который можно найти, перейдя в Консоль администрирования Team Foundation Server - > Уровень приложений - > Коллекции командных проектов, в нижней панели отобразится URL-адрес коллекции, выбранной в верхней панели.

У меня также была проблема, потому что я случайно попытался использовать множественное число workspaces вместо простого workspace, потому что есть похожая команда, которая во множественном числе.

Сначала вам нужно иметь право сделать это. Если у вас есть такая возможность, проще всего использовать сторонние помощники TFS от attrice http://www.attrice.info/ см / TFS /

Мне нужно было добавить /collection:collectionURL, иначе рабочее пространство не могло быть найдено:

  • Элемент списка

tf loc /блокировка: отсутствует /рабочее пространство:WorkspaceName;Имя пользователя /коллекция:collectionURL

Вот объяснение использования разрешений TFS.

  

Наличие " Разблокировать изменения других пользователей "   разрешение, установленное на Разрешить, требуется для   снять блокировку, удерживаемую другим пользователем.

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

Я бы подумал, что это решение практически всех вопросов «кого-то, кто больше не работает в этой организации» ...

Лучше удалить рабочее пространство этого пользователя с сервера.пример

рабочее пространство tf /удалить /сервер:рабочее пространство your_tfs_server;имя пользователя

Иногда это маскирует другую проблему с совершенно другим приложением, заблокированным другим пользователем, но вы даже не можете создать новую папку для нового проекта, в который хотите объединиться (target не разрешит создание и неправильно заявит, что у кого-то есть файл, заблокированный в их имени), но затем вы копаете глубже, и другой проект является виновником.

Таким образом, проблема может быть в совершенно другом проекте, когда файлы заблокированы кем-то другим.

Метод, который мне помог, у моей учетной записи есть разрешение администратора для TFS и проекта:

В Visual studio 2015:

<Ол>
  • Перейдите в Team Explorer
  • Нажмите справа на своем решении и выберите Открыть в системе контроля версий. Exporer
  • С левой стороны щелкните правой кнопкой мыши свое решение
  • Выберите Дополнительно
  • Выберите Блокировка ...
  • С левой стороны щелкните правой кнопкой мыши свое решение
  • Выберите Дополнительно
  • Выберите Разблокировать (теперь вы можете выбрать разблокировку)
  • Прямо сейчас, каждый разработчик может легко зафиксировать свои изменения:)

    Используйте это решение в качестве крайней меры .

    Я & # 8217; использую TFS 2012. Я зашел в базу данных TFS и выполнил следующие запросы. И это сработало! Конечно, будьте очень осторожны при работе с базой данных, создании резервных копий и т. д.

    База данных называется Tfs _ < < your_TFS_collection_name > > . Игнорируйте базу данных MSSQL Tfs_Configuration . Я не уверен, но если у вас нет базы данных Tfs _ & Lt; & Lt; your_TFS_collection_name & Gt; & Gt; , настройки могут быть в < База данных em> Tfs_DefaultCollection . Блокировки хранятся в tbl_PendingChange.LockStatus .

    /*Find correct row*/
    SELECT LockStatus, PendingChangeId, *
    FROM tbl_PendingChange
    WHERE TargetServerItem like '%<<fileName>>%'
    
    /*Set lock status to NULL (mine was set to 2 initially)*/
    UPDATE tbl_PendingChange SET LockStatus = NULL WHERE
    TargetServerItem like '%<fileName>>%'
    AND PendingChangeId = <<PendingChangeId from above>>
    
    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top