Примерно в духе
< ul>
[*]человек пишет шаблоны
[*]запускает код для создания файлов на основе шаблонов и заполнения данных
[*]человек применяет изменения к file
[*]код собирает новые данные и генерирует новый файл из шаблон
[*]код объединяет изменения, внесенные человеком, в новый файл
Я хочу, чтобы это было что-то вроде того, что часто делается, когда обработка встроенного кода, при которой IDE автоматически генерирует код и, например, заполняет адреса регистров, но при этом позволяет вносить изменения в указанный код вручную. Однако они обычно ограничивают изменения только небольшими сегментами - а это ограничение я не могу допустить.
Я думаю, что это можно сделать с помощью отдельных веток и подходящей стратегии слияния/перебазирования, но размышляя об этом, я выявляю множество сложных крайних случаев. Поэтому я ищу ссылки, где нечто подобное уже было сделано, или более подробную стратегию, позволяющую избежать как минимум следующих проблем:
- если шаблоны живут в тот же репозиторий git, что и сгенерированные файлы, просто проверка «автогенерированной» ветки не отслеживает изменения шаблона
- после изменения шаблонов или данных необходимо применить все изменения, внесенные человеком (через перебазирование?) в новые сгенерированные файлы. Я ищу хорошую стратегию слияния, которая позволяет избежать конфликтов, насколько это возможно.
вновь объединенный файл должен быть отправлен обратно в «рабочую» ветку, если это возможно, без переписывания истории.
В идеале Я хотел бы написать код Python, который обрабатывает весь рабочий процесс: git checkouts, генерация шаблонов, слияния и отзывы пользователей с помощью одной команды.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ic-updates