Блокировка файлов¶
Для предотвращения напрасной работы, вызванной неразрешимыми конфликтами слияния, требуется другой способ работы. Это означает явный запрос прав на запись и проверку того, что никто другой не редактирует тот же файл, прежде чем начать работу.
Хотя стратегии ветвления обычно достаточно хорошо работают для исходного кода и обычного текста, поскольку различные версии могут быть объединены вместе, они не работают для бинарных файлов.
При установке блокировки файлов блокируемые файлы по умолчанию доступны только для чтения.
Когда файл заблокирован, изменять его может только пользователь, заблокировавший файл. Считается, что этот пользователь «держит блокировку» или «захватил блокировку», поскольку одновременно блокировать файл может только один пользователь. Когда файл или каталог разблокирован, говорят, что пользователь «снял блокировку».
Система поддерживает два различных режима блокировки файлов:
- Эксклюзивная блокировка бинарных файлов: выполняется через командную строку и предотвращает изменение заблокированных файлов на любой ветке.
- Блокировка ветки по умолчанию: выполняется через пользовательский интерфейс Системы и предотвращает изменение заблокированных файлов и каталогов в ветке по умолчанию.
Разрешения на доступ¶
Блокировки может создавать любой пользователь, имеющий в репозитории как минимум роль Разработчик.
Редактировать заблокированные файлы может только пользователь, заблокировавший файл или каталог. Другие пользователи не могут изменять заблокированные файлы с помощью команд push, merge или любым другим способом — им будет выдано сообщение об ошибке.
Эксклюзивные блокировки файлов¶
Этот процесс позволяет блокировать отдельные файлы или расширения файлов, он выполняется через командную строку с помощью Git LFS.
Для эксклюзивных блокировок файлов в проекте через командную строку необходима роль Сопровождающий.
Блокируя файл, вы гарантируете, что никто другой его не редактирует, и не позволяете никому редактировать файл, пока вы не закончите работу. С другой стороны, разблокируя файл, вы сообщаете, что закончили его редактирование, и разрешаете другим редактировать его.
При переименовании эксклюзивно заблокированного файла блокировка теряется. Для сохранения блокировки необходимо снова заблокировать его.
Редактирование блокируемых файлов¶
После того, как файл сконфигурирован как блокируемый, он устанавливается в режим «только для чтения». Поэтому перед редактированием его необходимо заблокировать.
Предлагаемая схема работы с совместно используемыми проектами:
- Заблокировать файл.
- Редактировать файл.
- Закоммитить изменения.
- Отправить их в репозиторий с помощью команды push.
- Провести обзор, получить одобрение и произвести слияние (merge) изменений.
- Разблокировать файл.