Допустим, вы делаете хук после фиксации, чтобы делать то, что вы хотите ...
- Я фиксирую изменение в file1.txt.
- Хук Post-commit забирает изменения и создает новый файл fileR.txt
- Изменение после фиксации фиксирует это изменение, которое вызывает срабатывание ловушки перед фиксацией.
- И вы вернулись к шагу № 1
Существует также проблема создания рабочей копии на вашем сервере, где может работать ваш хук post commit. Когда кто-то делает коммит, вам придется либо обновить или даже извлечь рабочую копию на вашем сервере, согласовать изменения, а затем сделать новый коммит, не применяя хук фиксации. Помните, что люди могут создавать ветви, поэтому вам может потребоваться несколько рабочих копий.
И, пока ваш хук после фиксации делает все это, вы, пользователи, должны ждать завершения хука после фиксации.
Плюс, если я сделаю коммит, моя рабочая копия устарела. Теперь мне нужно зафиксировать, а затем сделать обновление, потому что сервер сделал фиксацию.
Я надеюсь, что убедил вас, что это не очень хорошая идея. Это возможно возможно, но это определенно не рекомендуется. Фактически, если бы я видел, как инженер-строитель сделал что-то подобное, я бы их уволил.
Предлагаю вам взглянуть на Дженкинс . Jenkins - это сервер непрерывной сборки. Что вы можете сделать, это попросить Дженкинса создать файл fileR.txt для вас каждый раз, когда будет сделан коммит. Этот файл можно легко загрузить с сервера Jenkins и сделать его общедоступным. Вы также можете взять свой fileR.txt и создать PDF для людей, пока вы там.
Итак, ваш объединенный файл все еще доступен и может быть загружен другими процессами, но это не заставит ваш хук после фиксации запустить еще один раунд хуков. И, fileR.txt только для чтения всеми, кто имеет доступ к этой конкретной работе Jenkins.