Subversion — Установить хук коммитов по умолчанию?

Subversion — Установить хук коммитов по умолчанию?

Можно ли как-то установить пользовательский хук коммита как хук «по умолчанию» при создании репозиториев?

решение1

Помимо девяти стандартных хуков, устанавливаемых в новый репозиторий командой 'svnadmin create /path/to/repo' (start-commit, pre/post-commit, pre/post-revprop-change, pre/post-lock и pre/post-unlock), я не знаю ни одного способа автоматически включить дополнительные хуки в качестве хуков «по умолчанию» для всех вновь создаваемых репозиториев.

Полагаю, вы могли бы создать скрипт оболочки для создания новых репозиториев, который вызывает команду svnadmin create с переменной, заданной для пути к репозиторию, а затем копирует пользовательский хук коммита в папку path/to/repo/hooks и использует его для всех новых репозиториев.

Наконец, поскольку вы упомянули, что этот пользовательский хук в частности является хуком коммита, я должен повторить предупреждение, высказанноеКонтроль версий с Subversionпри обсуждениискрипты-хуки(выделено мной):

Хотя скрипты-хуки могут делать практически все, есть одно измерение, в котором авторам скриптов-хуков следует проявлять сдержанность:не изменяйте транзакцию фиксации с помощью скриптов-хуков. Хотя может возникнуть соблазн использовать скрипты-ловушки для автоматического исправления ошибок, недостатков или нарушений политики, присутствующих в файлах, которые фиксируются, это может вызвать проблемы. Subversion хранит кэши на стороне клиента определенных битов данных репозитория, и если вы измените транзакцию фиксации таким образом, эти кэши станут необнаружимо устаревшими. Эта непоследовательность может привести к удивительному и неожиданному поведению. Вместо того чтобы изменять транзакцию, вы должны просто проверить транзакцию в хуке перед фиксацией и отклонить фиксацию, если она не соответствует желаемым требованиям. В качестве бонуса ваши пользователи узнают ценность осторожных, ориентированных на соответствие рабочих привычек

Связанный контент