Файл TFS должен оставаться заблокированным

У меня есть несколько сторонних dll, зарегистрированных в TFS
Наши машины были переименованы, и теперь TFS считает, что они извлечены мной для редактирования на другой машине.

Я пробовал tf lock /lock:none contrib64/* /workspace:oldmachine;myusername, но получаю сообщение об ошибке

TF10152: The item $/XXX/YYYY/contrib64/third_party.dll must remain locked because its file type prevents multiple check-outs.

1. Есть ли способ обойти это?
2. Действительно ли TFS так плоха или это только я?
3. Цель TFS вызвать у нас ностальгию по VSS?

ps Это размещенная версия, поэтому я не могу просто попросить администратора ее исправить.


person Martin Beckett    schedule 08.02.2013    source источник


Ответы (4)


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

Поскольку машина, на которой находится рабочая область, больше не существует (машина была переименована), лучше всего удалить рабочую область.

из командной строки Visual Studio

tf workspace /delete oldmachine;myusername /collection:http://*tfsserver*:8080/tfs/*collection*

Это удалит рабочую область и отменит все ожидающие изменения.

person James Reed    schedule 08.02.2013
comment
Я нашел предложение удалить рабочую область, но наша размещенная TFS подразумевала, что вся компания была рабочей областью — по крайней мере, так она называет всю нашу коллекцию. Является ли каждая машина + пользователь рабочей областью? - person Martin Beckett; 08.02.2013
comment
ps спасибо, причина бинарной проверки/слияния на самом деле имеет смысл! - person Martin Beckett; 08.02.2013
comment
У каждого пользователя может быть много рабочих областей на многих машинах. Рабочая область — это сопоставление между папкой в ​​системе управления версиями и папкой на локальном жестком диске. Технически я полагаю, что коллекция может рассматриваться как рабочее пространство как общий термин, но в TFS рабочее пространство имеет особое значение. по умолчанию, когда вы создаете рабочую область, ее имя — имя_машины;имя_пользователя, второй рабочей областью на той же машине будет имя_машины_1;имя_пользователя, вы можете переименовать первую часть имени рабочей области. Удалите старую рабочую область, и все будет хорошо. - person James Reed; 08.02.2013
comment
большое тебе спасибо. Любая идея по другим вопросам. Действительно ли TFS намного менее дружелюбен, чем Git, или мне просто нужно больше узнать? - person Martin Beckett; 08.02.2013
comment
Это довольно субъективно :-) Я не так много использовал git, поэтому не могу комментировать. К TFS нужно привыкнуть, и он во многом похож на CVCS. Лучшим сравнением является SVN, с которым, я бы сказал, TFS находится на одном уровне (начиная с TFS 2012) с точки зрения контроля версий. Конечно, TFS делает гораздо больше, чем контроль версий. Хотя у TFS есть свои недостатки и недостатки, я бы сказал, что она в 1 миллион раз лучше, чем VSS. - person James Reed; 09.02.2013
comment
Лучший ответ когда-либо. Я потратил часы, пытаясь разблокировать проверку, которую я сделал в другом рабочем пространстве/машине, и до сих пор мне это не удавалось. Спасибо... - person monn3t; 29.05.2021

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

С помощью командной строки разработчика Visual Studio:

tf undo "$/<server-path-to-file/folder>" /workspace:"<workspace>;<user>" /collection:<collection-url> /recursive

tf lock "$/<server-path-to-file/folder>" /lock:none /workspace:"<workspace>;<user>" /collection:<collection-url> /recursive

person riQQ    schedule 20.11.2018

Файлы с расширением .dll, а также с другими расширениями, такими как .exe, .doc, .docx и т. д., автоматически блокируются, потому что (как уже упоминалось) здесь они не могут быть объединены.

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

  1. Войдите на свой сервер сборки.
  2. Открытая визуальная студия.
  3. В Team Explorer войдите в свой командный проект.
  4. Перейти к настройкам".
  5. В разделе «Коллекция командных проектов» выберите «Управление исходным кодом».
  6. Установите для свойства «Объединение файлов» значение «Отключено» для любого расширения файла, которое вы не хотите автоматически блокировать.

Ссылка: https://blogs.msdn.microsoft.com/phkelley/2008/11/12/everything-you-ever-wanted-to-know-about-locks/

Это сработало для меня.

person Mockingbird    schedule 25.08.2016

Мне нужно было изменить настройки в 2-х местах:

  1. В Visual Studio окно командного проекта, Настройки->Коллекция командных проектов -> Управление версиями введите описание изображения здесь Включить слияние файлов для расширения.

2) В Visual Studio, окно командного проекта, Настройки-> Групповой проект -> Управление исходным кодом введите здесь описание изображения Включите поле многократного извлечения

person MiguelSlv    schedule 13.11.2018