On Sat, Dec 08, 2007 at 12:06:54AM +0300, Dmitry V. Levin wrote: >> * Денис Смирнов [071207 19:49]: > >> Берем первый попавшийся репо с нашего archive. Делаем git repack -a -d -f > >> --window=100 --depth=100, и получаем репо существенно меньшего размера. >> raorn@hell:pts/2 ...kages/mutt1.5 $ git repack -a -d; du -chs .git/objects; git repack -a -d -f --window=100 --depth=100; du -chs .git/objects DVL> Надо не только результат сравнивать, но и затраты на его получение. DVL> postfix$ time git repack -a -d -f --depth=250 --window=250 && du -hs .git/objects/pack window=250 это очень жестоко. Собственно рост depth влияет потом на скорость доступа к истории (старой), а рост window влияет на скорость выполнение repack. Однако git repack -f нужен _один_ раз. При дальнейших операциях ключ -f не нужен. Мало того, все эти сложности будут не нужны тем, кто с этого репо сделал clone -- как я понял со слов Линуса информация об использованых дельтах передается при клонировании (в т.ч. по сети). Так что имеет смысл единовременно выполнить эту процедуру для содержимого archive, а потом делать repack _без_ -f, но с window/depth хотя бы 100. На больших разветвленных репозиториях это имеет большой смысл. А также для всех репо, которые создавались с использованием git-fast-import. -- С уважением, Денис http://freesource.info ---------------------------------------------------------------------------- Кто багу обедает, тот ее и танцует. -- mike in devel@