Поделиться через


Основные сведения о типах блокировки

С помощью команды lock можно временно запретить изменение определенного файла или папки на сервере управления версиями. Это может оказаться полезным, если необходимо изменить элемент в локальной рабочей области, а затем вернуть его на сервер без риска возникновения конфликтов слияния. Одновременно владеть блокировкой того или иного файла или папки может только один пользователь. Если требуется запретить доступ к элементу на постоянной основе, используется Команда Permission.

Типы блокировки

Сервер Team Foundation поддерживает блокировки двух типов: блокировки возврата и блокировки извлечения.

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

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

Принцип работы блокировки

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

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

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

Одновременно владеть блокировкой того или иного файла или папки может только один пользователь. Для получения информации о том, какие файлы на сервере Team Foundation (подсистема контроля версий) заблокированы и кем они заблокированы, служит Команда Status.

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

Разблокирование элемента

Разблокировать элемент можно явным образом с помощью команды unlock или неявно во время возврата. При возврате ожидающих изменений заблокированного элемента сервер Team Foundation снимает все блокировки.

Примечание

По умолчанию разрешение UnlockOther дается только администраторам.Пользователь, обладающий разрешением UnlockOther, может снимать блокировку с любого элемента в рабочей области другого пользователя из командной строки (Команда lock).

См. также

Задачи

Просмотр ожидающих изменений в других рабочих областях

Основные понятия

Создание рабочей области для работы с командным проектом

Другие ресурсы

Работа с блокировками системы управления версиями

Разрешение конфликтов файлов и различий папок