SVN: возможно ли заблокировать файл, как только пользователь извлечет его из репозитория SVN? - PullRequest
0 голосов
/ 03 марта 2011

У меня есть особое требование.Я хочу, чтобы, как только пользователь извлекает файл, этот файл должен быть заблокирован с именем этого пользователя, и тогда никакой другой пользователь не сможет извлекать этот файл до снятия блокировки.Я хочу сделать это для нескольких двоичных файлов, которые не могут быть объединены после одновременного редактирования различными разработчиками.Существует свойство, называемое svn: needs-lock, но оно не блокирует файл, оно только делает его доступным только для чтения и не позволяет сохранить файл после того, как все редактирование выполнено, что является пустой тратой времени и усилий.Есть ли способ, с помощью которого я смогу создать ловушку, которая срабатывает, как только происходит проверка.И в этом хуке я могу заблокировать файл, чтобы никто другой не смог его отредактировать, пока я не выполню фиксацию и не сниму блокировку.

Ответы [ 3 ]

1 голос
/ 03 марта 2011

Невозможно установить эксклюзивную блокировку для файла только на основе извлечения. Что вы можете сделать, так это поместить в файл свойство svn: needs-lock. Результатом является наличие файла только для чтения в рабочей копии и напоминание о необходимости блокировки перед тем, как вносить изменения. Subversion работает на основе модели «копировать-модифицировать-объединить». Парадигма строгой блокировки используется другими системами контроля версий, такими как ClearCase, но не Subversion.

0 голосов
/ 03 марта 2011

Я предлагаю написать скрипт / программу, которая запускается при попытке открыть этот тип файлов. Скрипт проверяет, доступен ли файл только для чтения (вы часто не используете CD-диски?). В этом случае он заблокирует файл (или покажет сообщение об ошибке) и запустит редактор.

0 голосов
/ 03 марта 2011

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

...