Git е бавен при натискане на промяната на подмодулите към произхода

Използвам git, където имам репо, съдържащо около 40 (!) подмодула repo.

Всеки път, когато правя git git push origin master, действието remote: Processing changes е много бавно.

Има ли някакъв начин да ускоря натискането? Gerrit се използва като бекенд, но аз отменям HEAD:refs/for/master, за да съединя накъсо механизма за преглед.

PS. Знам, че имам много подрепозитиви и това може да не е оптимално, но това е така и въпросът не е за това :-)


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


Отговори (2)


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

Горното репо проследяваше главния клон. Това означава, че когато натискам към източник във всяко подрепо, горното репо се актуализира автоматично (в Gerrit).

Не разбрах това, така че също направих натискане на горното репо и това причини много дългото време за обработка.

Не знам защо обаче.

person Henrik    schedule 01.06.2015

Има ли някакъв начин да ускоря натискането?

Със следващия git 2.12.0 (Q1 2017), този процес (на тестване дали подмодулите трябва да бъдат изпратени) ще бъде много по-бърз.

Вижте commit 250ab24, комит 5b6607d, комит 9cfa1c2, комит 1473944 (16 ноември 2016 г.) от Хайко Фойгт (hvoigt).
(Обединено от Junio ​​C Hamano -- gitster -- в commit af952da, 16 декември 2016 г.)

сериализира колекция от променени подмодули

За да проверим дали даден подмодул трябва да бъде избутан, трябва да съберем всички променени подмодули. Нека първо ги съберем и след това изпълним евентуално скъпия тест дали определени ревизии вече са изпратени само веднъж на подмодул.

Има допълнителен потенциал за оптимизация, тъй като можем да съберем една команда и да я издадем само вместо едно извикване за всяка отдалечена референция в подмодула.

person VonC    schedule 22.12.2016