Назад | Перейти на главную страницу

Большие репозитории (hg или git)

Я бы хотел использовать hg или git для репо размером около 5 ГБ. Правильно ли они работают на репо с таким большим размером?

Репозиторий в 5 ГБ большой, но не слишком большой. Вы не говорите, что 5 ГБ предназначены только для истории, для рабочей копии или для комбинированной цифры?

Для сравнения могу сказать, что Репозиторий OpenOffice имеет историю 2,0 ГБ (около 270 000 наборов изменений) и 2,3 ГБ рабочей копии. Mercurial нормально работает с таким размером:

$ time hg status
hg status  0.63s user 0.26s system 99% cpu 0.886 total

При холодном кешировании это занимает 2,4 секунды - немного дольше, но неплохо. В рабочей копии 69 000 файлов.

В общем, вы можете ожидать, что и Git, и Mercurial будут замедляться по мере роста репозитория. По сложности операций различаются: hg status очевидно О(количество файлов в рабочей копии), hg commit имеет сложность hg status плюс O (количество измененных файлов). Простая команда вроде hg cat имеет сложность O (1) по количеству файлов и количеству ревизий - Mercurial может реконструировать любую версию файла за постоянное время.

Я никогда не использовал hg, но facebook недавно отправил сообщение о замедлении работы репозитория git. Я думаю, их проблема заключалась в том, что все их «приложения» собраны в одном репо.

http://thread.gmane.org/gmane.comp.version-control.git/189776

Это стоит прочитать людям, пытающимся им помочь