Ветки и обновление ядра¶
Политика веток¶
master во всех трёх репозиториях — защищённая, стабильная ветка:
изменения попадают в неё через отдельную ветку и слияние, а не прямым
пушем. Смысл в том, что master в Metatron в любой момент можно
безопасно взять как основу для submodule в Metatron-Research — там
заведомо не будет незакоммиченного/сломанного промежуточного состояния.
Практическое разделение по репозиториям:
Metatron — рабочие ветки на функциональность/рефакторинг (например,
refactoring_2/self_order_loop, как сейчас), слияние вmaster— когда состояние действительно стабильно и стоит того, чтобы на него ссылались submodule-потребители.Metatron-Research — ветка на задачу или статью (
Examples/2026_MyPaper/внутри такой ветки, см. Metatron-Research). Каждая такая ветка фиксирует свой коммитMetatron— именно так достигается воспроизводимость результатов.Metatron-Docs — обычно один поток изменений в
master(документация не версионируется по задачам так же, как расчёты).
Как обновить ядро в Metatron-Research¶
Обновление ядра — осознанный шаг, а не побочный эффект обычного
git pull:
cd Metatron
git fetch
git checkout <нужный коммит/тег/ветка>
cd ..
git add Metatron
git commit -m "Обновление ядра Metatron до <версии>: <зачем>"
До коммита в Metatron-Research в git status будет виден submodule как
«изменённый» (указывает на другой коммит) — это ожидаемо и означает, что
обновление ещё не зафиксировано.
Как узнать, на каком коммите ядра посчитан результат¶
cd Metatron-Research/Metatron
git log -1
Или, не заходя в submodule, из корня Metatron-Research:
git ls-tree HEAD Metatron
Если результаты сохранялись через скриптовый слой (см.
Шаг 5. Сохранение и загрузка результатов), дата и параметры расчёта также
видны в manifest.txt рядом с результатами — но версия ядра туда сейчас
не пишется явно, единственный надёжный источник — коммит submodule на
момент расчёта.