Git медленно переводит субмодули в начало

Я использую git, где у меня есть репозиторий, содержащий около 40 (!) репозиториев подмодулей.

Всякий раз, когда я делаю git git push origin master, он очень медленно работает с действием remote: Processing changes.

Можно ли как-то ускорить толчок? Геррит используется как серверная часть, но я переопределяю HEAD:refs/for/master, чтобы замкнуть механизм просмотра.

PS. Я знаю, что у меня много подрепозиториев, и это может быть не оптимально, но так оно и есть, и вопрос не об этом :-)


person Henrik    schedule 09.03.2015    source источник


Ответы (2)


ОК нашел проблему:

Верхнее репо отслеживало основную ветку. Это означает, что когда я нажимаю на источник в каждом подрепозитории, верхний репо обновляется автоматически (в Геррите).

Я не понял этого, поэтому я также сделал толчок в верхнем репо, и это вызвало очень долгое время обработки.

Хотя не знаю почему.

person Henrik    schedule 01.06.2015

Можно ли как-то ускорить толчок?

Со следующим git 2.12.0 (1 квартал 2017 г.) этот процесс (тестирования, нужно ли отправлять подмодули) будет намного быстрее.

См. коммит 250ab24, коммит 5b6607d, Хайко Фойгт (hvoigt).
(объединено Хунио С. Хамано -- gitster -- в коммит af952da, 16 декабря 2016 г.)

сериализовать коллекцию измененных подмодулей

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

Существует дополнительный потенциал для оптимизации, поскольку мы можем собрать одну команду и выдать только ее вместо одного вызова для каждой удаленной ссылки в подмодуле.

person VonC    schedule 22.12.2016