Основные сведения о типах блокировки
Обновлен: Ноябрь 2007
С помощью команды lock можно временно запретить изменение определенного файла или папки на сервере управления версиями. Это может оказаться полезным, если необходимо изменить элемент в локальной рабочей области, а затем вернуть его на сервер без риска возникновения конфликтов слияния. Одновременно владеть блокировкой того или иного файла или папки может только один пользователь. Если требуется запретить доступ к элементу на постоянной основе, используется Команда "permission".
Типы блокировки
Сервер Team Foundation поддерживает блокировки двух типов: блокировки возврата и блокировки извлечения.
Блокировка возврата в меньшей степени ограничивает пользователей по сравнению с блокировкой извлечения. При применении блокировки возврата пользователи могут продолжать вносить локальные изменения в элемент в других рабочих областях, но эти изменения невозможно будет вернуть на сервер, пока блокировка не будет явным образом снята с элемента, либо пока она не будет снята неявным образом путем возврата изменений.
Блокировка извлечения является более строгой, поскольку она не позволяет пользователям извлекать элементы и вносить в них изменения в локальных рабочих областях. Блокировку извлечения невозможно применять к элементам, для которых существуют ожидающие изменения в рабочих областях пользователей, отличных от пользователя, применяющего блокировку. Поэтому блокировка возврата и извлечения гарантирует право первого возврата владельцу блокировки в рабочей области, в которой блокировка была применена.
Принцип работы блокировки
Если при блокировке файл извлекается, в запись о его извлечении заносится новый тип блокировки. Если файл не извлекается, в набор ожидающих изменений рабочей области добавляется изменение блокировки. В отличие от команды извлечения, при выполнении команды блокировки файл не становится доступным для изменения автоматически.
Сервер Team Foundation автоматически снимает блокировку с элемента при возврате ожидающих изменений в рабочей области, в которой он был заблокирован. Блокировка также снимается в том случае, когда пользователь отменяет ожидающие изменения для файла с помощью команды undo.
Блокировки в папках являются неявно рекурсивными. При блокировке папки нет необходимости блокировать содержащиеся в ней файлы, если только к файлу в папке, имеющей блокировку возврата, не требуется применить более строгую блокировку извлечения.
Одновременно владеть блокировкой того или иного файла или папки может только один пользователь. Для получения информации о том, какие файлы на сервере Team Foundation (подсистема контроля версий) заблокированы и кем они заблокированы, служит Команда "status".
Блокировку можно применить в рамках отдельной операции или совместно с другими операциями, такими как переименование, извлечение, удаление, отмена удаления, слияние, ветвление и добавление в систему управления версиями. Если блокировка применяется одновременно с операциями добавления в систему управления версиями или ветвления, сервер Team Foundation связывает блокировку с серверным путем, по которому будет создан новый элемент. Это не позволит другому пользователю добавить новый файл или создать ветвь старого по тому же пути. Если блокировка применяется одновременно с командой переименования, блокируется как новый, так и старый путь.
Разблокирование элемента
Разблокировать элемент можно явным образом с помощью команды unlock или неявно во время возврата. При возврате ожидающих изменений заблокированного элемента сервер Team Foundation снимает все блокировки.
![]() |
---|
По умолчанию разрешение UnlockOther дается только администраторам. Пользователь, обладающий разрешением UnlockOther, может снимать блокировку с любого элемента в рабочей области другого пользователя из командной строки (Команда "lock"). |
См. также
Задачи
Практическое руководство. Просмотр ожидающих изменений в других рабочих областях
Основные понятия
Работа с рабочими областями системы управления версиями