Если вы установите атрибут svn:needs-lock
для всех файлов в теге, все файлы будут извлечены только для чтения, если пользователь явно не получит блокировку. Это (в большинстве случаев) предотвратит изменение файлов. Это не мешает кому-либо изменять флаг «только для чтения» или получать блокировку, но уменьшает вероятность случайного изменения.
Сама Subversion не может применить атрибут svn:needs-lock
к папке, но, например, в клиенте TortoiseSVN (Windows), если вы пытаетесь это сделать, он применяет свойство ко всем файлам в папке и подпапках. Это не позволит вам сделать это из репозитория TortioseSVN, поэтому вы должны извлечь рабочую копию тега, изменить свойства, а затем зарегистрировать изменения свойств. Другие клиенты могут отличаться; Если вы используете собственный клиент командной строки Subversion, может понадобиться подходящий сценарий оболочки или аналогичный для перебора файлов и подпапок для массового применения атрибута. TortoiseSVN, по крайней мере, предупреждает вас, если вы пытаетесь что-либо изменить в папке Tags
- но это всего лишь соглашение, а не принуждение.
Решение svn:needs-lock
несколько слабое и легко обходится и не мешает новым файлам добавлять в папку тегов; более сильная альтернатива - создать фиктивного пользователя и получить блокировку для всего тега в этом имени пользователя. Это не позволит «реальным» пользователям регистрироваться, а для проверок рабочих копий будет установлен атрибут «только для чтения», как в svn:needs-lock
- разница в том, что они не смогут получить блокировку, и изменение атрибута «только для чтения» рабочей копии также не позволит выполнить регистрацию.