Что вы делаете, если файл в TFS заблокирован кем-то другим?
Кто-то покинул организацию, но перед отъездом он заблокировал все файлы по неизвестной причине.
Как вы разблокируете их все, чтобы другие разработчики могли работать?
Ответы
Ответ 1
Для следующей операции вам нужно будет либо администратором проекта для проекта, который вы хотите отменить регистрацию, или администратора Team Foundation, если вы хотите сделать это во всех проектах.
Если у вас все еще есть имя пользователя, вы можете просто сделать что-то вроде этого:
- Откройте командную строку Visual Studio (Пуск → Программы → Microsoft Visual Studio 200X → Инструменты Visual Studio → Командная строка Visual Studio 200X)
- Выполните следующую команду:
tf блокировка/блокировка: нет /Рабочее пространство: WorkspaceName; ИМЯ_ПОЛЬЗОВАТЕЛЬ /рекурсивный $/
Чтобы получить список рабочих областей для пользователя, просто запустите следующую команду из той же подсказки:
tf workspaces/owner: username
Для получения дополнительных команд установите флажок tf/?
Ответ 2
Если разработчик покинул организацию, то лучше всего удалить их рабочие области. Это разблокирует файлы для вас, но также освободит некоторые ресурсы на сервере.
См. следующее сообщение в блоге, которое я сделал по этой теме, когда это случилось со мной несколько лет назад.
http://www.woodwardweb.com/vsts/unlocking_files.html
Вы можете либо удалить рабочую область с помощью командной строки (tf.exe), либо использовать атрибут
Ответ 3
Это был единственный способ решить эту проблему, который заключался в удалении рабочего пространства пользователя.
Если в сообщении об ошибке указано "Элемент $/... заблокирован для извлечения 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 Console-> Приложение Tier-> Коллекции командного проекта, в нижней панели будет показан URL-адрес для коллекции, выбранной в верхняя панель.
У меня также была проблема, потому что я случайно попытался использовать множественное число workspaces
вместо просто workspace
, потому что есть подобная команда, которая является множественным числом.
Ответ 4
сначала вам нужно иметь право на это. Если у вас есть, что проще всего использовать сторонних пользователей TFS из attrice http://www.attrice.info/cm/tfs/
Ответ 5
Мне нужно было добавить /collection: collectionURL, иначе рабочая область не найдена:
tf loc/lock: none/workspace: WorkspaceName; UserName/collection: collectionURL
Ответ 6
Ниже приведено объяснение использования разрешений TFS.
Имея "Разблокировать другие пользовательские изменения", для разрешения требуется разрешение удалите блокировку, удерживаемую другим пользователем.
Ответ 7
У системного администратора reset, что пароль пользователя, войдите в систему как этот пользователь, разблокируйте все файлы...
Я бы подумал, что это решение почти для всех, кто больше не относится к этой организации...
Ответ 8
Лучше удалить рабочую область этого пользователя с сервера. Пример
tf рабочее пространство/удаление/сервер: рабочее пространство your_tfs_server; имя пользователя
Ответ 9
Иногда это маскирует другую проблему, когда совершенно другое приложение блокируется другим пользователем, но вы даже не можете создать новую папку для нового проекта, в который хотите объединиться (цель не позволит создать и неправильно указать, что у кого-то есть файл, заблокированный от их имени), но затем вы копаете глубже, а другой проект является виновником.
Таким образом, совершенно другим проектом может быть проблема с тем, что файлы заблокированы кем-то другим.
Ответ 10
Метод, который мне помог, моя учетная запись имеет разрешение администратора для TFS и проекта:
В Visual studio 2015:
- Перейдите в Team Explorer
- Нажмите прямо на своем решении и выберите Открыть в системе контроля версий.
Exporer
- Слева щелкните правой кнопкой мыши на вашем решении
- Выберите Дополнительно
- Выберите Заблокировать...
- Слева щелкните правой кнопкой мыши на вашем решении
- Выберите Дополнительно
- Выберите Разблокировать (теперь вы можете выбрать разблокировку)
Прямо сейчас, каждый разработчик может легко зафиксировать свои изменения :)
Ответ 11
Используйте это решение как последнее средство.
Im, использующий TFS 2012. Я пошел в базу данных TFS и выполнил следующие запросы. И это сработало! Конечно, будьте очень осторожны, когда вы возитесь с базой данных, делаете резервные копии и т.д.
База данных называется Tfs_ < <your_TFS_collection_name → . Игнорируйте базу данных MSSQL Tfs_Configuration. Я не уверен, но если у вас нет Tfs_ < <your_TFS_collection_name → → базы данных, настройки могут быть в базе данных 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>>