Pull to refresh

Comments 6

Вопрос в другом, почему с субмодулями постоянно какие-то проблемы...

были и другие, но они были по-проще и нормально решались рекурсивным update. Эта воспроизвелась 2 раза на прошлой неделе, пока грешу на себя, так как в режиме ограниченного времени: когда думаешь о коде и машинально что-то там commit & push

На собственном опыте использования submodule под git (у svn такой проблемы не было) - регулярно слетает указатель на submodule, причем хаотично и непонятна причина такого поведения - после этого начинаются танцы с бубном.

Мой ответ в том что гит это набор инструментов, а не готовый пайплайн работы. И самое печальное что гит не позволяет внятно пайплайн зафиксировать в репо. С сабмодулями очень легко ошибиться, и вообще сабмодули это боль, особенно когда они становятся рекурсивными. Мы пилили монорепу на сабрепы, сейчас собираем её назад. С монорепой жить сильно проще.

У нас никаких проблем с сабмодулями нет. Может вы просто не умеете их готовить?

Вот как автор, например? Который кастит определённую последовательность заклинаний, начинающихся с git submodule. Если что не работает — погуглить ошибку и повторить заклинания оттуда. В крайнем случае переинсталлировать windows переклонировать и пересоздать сабмодуль. Объяснения, что произошло, в статье почему-то не было.

А ведь всё просто, сабмодуль — это просто отдельный независимый репозиторий. А CICD репозиторий просто говорит на какой коммит надо делать checkout. Автор поменял что-то в сабмодуле. Пушнул? Неизвестно. Но даже если и пушнул, у него потом git submodule update --rebase. Rebase, Карл! Rebase сделал своё дело, хэши у коммитов в сабмодуле поменялись. Пушнул автор это? Точно нет. А CICD он пушнул.

Вот его дженкинс делает checkout CICD, тот говорит, мне нужен такой-то коммит из сабмодуля. А автор этот коммит не пушнул, не полезет же дженкинс к автору на лаптоп? Это как переслать кому-то симлинк вместо самого файла.

Фиксится очевидно как, надо пушнуть сабмодуль.

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

Sign up to leave a comment.

Articles