Я использую git как свою систему управления версиями и настроил сайт Gerrit для просмотра кода. Я хотел бы создать крюк, чтобы сделать следующее:Gerrit change-merged Hook
- Когда администратор нажимает кнопку Submit, файл (называемый version.txt) должен быть изменен.
- Сценарий должен открыть файл.
Найти следующий текст (где ID может измениться)
#version Change-Id: Ie1411d50f6beb885bc3d3b7d8c587635e1446c18
Заменить Сменная Id с Change-Id нового патча.
Итак, если патч объединяемых имеет
Change-Id: I1c25f7b967084008b69a6a8aefa6e3bb32967b82
то version.txt файл должен содержать следующую строку после запуска сценария:#version Change-Id: I1c25f7b967084008b69a6a8aefa6e3bb32967b82
- Затем крючок должен создать new commit (так как теперь произошел смен в одном из файлов) и нажмите эту последнюю фиксацию на master.
Я чувствую, что это возможно, используя сменное слияние крючок. Я прав?
Заранее спасибо.
Спасибо за ответ. Я попробую и отправлю отчет. Можете ли вы немного рассказать о сценарии 'install.sh'? –
Теперь я вижу проблему: сменой слияния крючок не принимает сообщение commit в качестве аргумента. Таким образом, было бы невозможно сохранить сообщение фиксации, когда патч будет окончательно перенесен в ветвь. Hmmm ... –
О, вы хотите * изменить * оригинал фиксации? Если все, что вы хотите сделать, это изменить фиксацию, вы можете сделать это ('git commit -amend -C HEAD') вместо строки' git commit -m..' выше. «-C HEAD» означает «использовать сообщение фиксации и автора из ревизии HEAD и не открывать редактор для запроса сообщения». – Joe