svn было проще.
В принципе, если проекты вообще не зависят друг от друга - то нормально, но тогда зачем нужны сабмодули? А вот когда надо синхронно менять ветки в этих двух проектах, потому что изменения затрагивают сразу оба - тут в гите становится неудобно весьма...
Проект хранит конкретный комит сабмодуля, поэтому как раз с этим нет проблем. имхо. Комитишь изменения в сабмодуль, комитишь измененный сабмодуль в проект. Все логично
Потом я переключаю ветку в своём проекте, а ветка в сабмодуле НЕ переключается, и все разваливается на куски
сабмодуль сваливается на коммит сабмодуля который был в этой ветке. имхо всё правильно
Ну вот когда я проверял - он не сваливался, пока ты в ручную не проуйдёшься по каждому сабмодули и вручную его не переключишь. А бегать по всем папкам с сабмодулями быстро надоедает. И если ты забыл про какой-то из сабмодулей - он так и останется на коммите другой ветки. В ситуации, когда ветки проектов связаны друг с другом это сильно мешало.
а помоему это единственный правильный вариант. на том конце субмодуль может активно пилится и уйти далеко вперед твоего проекта. но ты этого не заметишь, т.к. контролируешь какая именно версия сабмодуля у тебя в каждой ветке
да, иногда бывает неожиданно что модуль "не с того не с сего" деатачился от мастера. но так оно устроено
Разве бывает ни с того ни с сего? Скорее недопонимание труъ вэй источник такого )
не совсем так. по умолчанию он удеаттачен
Ещё раз, ты не слышишь. У меня много веток моего проекта. Каждая из них работает с конкретной (может быть даже моей) веткой сабмодуля. Если я переключил верхний проект с ветки А на ветку Б - то же самое должно случиться в сабмодуле. Потому что ветка А верхнего проекта не может работать с веткой Б сабмодуля, и наоборот. Сабмодуль должен тоже переключиться вместе с верхним проектом, и SVN это делал, хотя и терял в гибкость и скорости. А git перестал, зато приобрёл комбинатррны взрыв гибкости. Чтобы это случилось в гите, я должен узнать, что есть сабмодуль. Вспомнить, что есть сабмодуль. Найти этот сабмодуль на диске. И в его папке запустить git checkout на имя ветки, которое тоже ещё нужно откуда-то найти. Иначе сабмодуль останется на старой ветке, хотя ветку большого проекта я переключил. Не просто так в гите добавили subtree. Когда есть много способов выполнить одну и ту же функцию - это означает, что все они косячные :) И у меня нет большого желания этот subtree сильно тестировать, хватило того опыта
сабмодуль привязан к комиту, ветки в рамках главного проекта у него нет. и эти комиты переключаются при смене бранчей. По мнению авторов ветка там переключаться не должна))
Обсуждают сегодня