Я бы хотел использовать 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
Это стоит прочитать людям, пытающимся им помочь