> обычно все живые проекты на поддержке и если там используется общий кодСкажи это google graveyard.
Или если компания захочет выложить один из своих сервисов в общий доступ, ей что придётся выдирать это из своего монорепы и создавать отдельную так и так.
> Обновляем репозиторий фреймворка
Один разработчик не обновляет 100 микросервисов сразу. Тем более эти тулзы крупных компаний как раз и предназначены, чтобы разработчик скачивал себе только нужные микросервисы. То есть у него на локальном компьютере не весь проект и обновить его весь целиком это долго. А то что отдельные микросервисы или весь репозиторий тестируется на сервере тут от типа организации кода не зависит.
Тут даже подход npm выглядит лучше, когда есть отдельные библиотеки и новые версии скачиваются в момент установки. Библиотека тестируется отдельно. Никто 100 микросервисов не деплоит одновременно у них каждого свой релизный цикл, так что какая разница как они хранятся. А значит ни про какую атомарность говорить не стоит.
Хотят компании так пользоваться, пускай пользуются.
> Один атомарный коммит
Зато git status выполняется несколько минут. И чекаут неограниченное время. То есть слив всё в одну репу, получили атомарный коммит, но зато он делается в 10 раз дольше чем обычный.
> Представь сколько занимает вся история.
А сколько бы полезного можно было сделать не разрабатывая свои велосипеды для управления монорепо. После этого они разрабатывают всякие Bazel/Buck build чтобы он билдил только те куски, которые изменились. И ещё кучу вещей, которые были бы не нужны, если было было бы всё разделено по отдельным репозиториям.