* [devel] git archive
@ 2007-12-07 16:46 Денис Смирнов
2007-12-07 19:31 ` Alexey I. Froloff
0 siblings, 1 reply; 7+ messages in thread
From: Денис Смирнов @ 2007-12-07 16:46 UTC (permalink / raw)
To: devel; +Cc: ldv
[-- Attachment #1: Type: text/plain, Size: 624 bytes --]
В связи с последним флеймом в рассылке gcc "Торвальдс VS не знакомые с
возможностями git" рассказываю обнаруженную вещь:
Берем первый попавшийся репо с нашего archive. Делаем git repack -a -d -f
--window=100 --depth=100, и получаем репо существенно меньшего размера.
Также крайне эффективно для репозиториев импортированых с svn, на Asterisk
у меня размер репо сократился в два раза.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Спасибо, Костя. Моя вера в опенсорс теперь ещё больше "непокобелима" (тм).
-- avp in sisyphus@
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] git archive
2007-12-07 16:46 [devel] git archive Денис Смирнов
@ 2007-12-07 19:31 ` Alexey I. Froloff
2007-12-07 19:42 ` Денис Смирнов
2007-12-07 21:06 ` Dmitry V. Levin
0 siblings, 2 replies; 7+ messages in thread
From: Alexey I. Froloff @ 2007-12-07 19:31 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1172 bytes --]
* Денис Смирнов <mithraen@> [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
Generating pack...
Counting objects: 4853
Done counting 25322 objects.
Deltifying 25322 objects...
100% (25322/25322) done
Writing 25322 objects...
100% (25322/25322) done
Total 25322 (delta 17081), reused 25322 (delta 17081)
Pack pack-0c458127a8cfdf81b5bfbe0ebbbaf6dc95ef74d5 created.
Removing unused objects 100%...
Done.
155M .git/objects
155M total
Generating pack...
Counting objects: 1960
Done counting 25322 objects.
Deltifying 25322 objects...
100% (25322/25322) done
Writing 25322 objects...
100% (25322/25322) done
Total 25322 (delta 19624), reused 0 (delta 0)
Pack pack-0c458127a8cfdf81b5bfbe0ebbbaf6dc95ef74d5 created.
Removing unused objects 100%...
Done.
11M .git/objects
11M total
Я фигею, дорогая редакция. Это результат работы hg2git...
--
Regards,
Sir Raorn.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] git archive
2007-12-07 19:31 ` Alexey I. Froloff
@ 2007-12-07 19:42 ` Денис Смирнов
2007-12-07 20:02 ` Alexey I. Froloff
2007-12-07 21:06 ` Dmitry V. Levin
1 sibling, 1 reply; 7+ messages in thread
From: Денис Смирнов @ 2007-12-07 19:42 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 839 bytes --]
On Fri, Dec 07, 2007 at 10:31:10PM +0300, Alexey I. Froloff wrote:
AIF> 155M .git/objects
AIF> 11M .git/objects
AIF> Я фигею, дорогая редакция. Это результат работы hg2git...
Фишка в том, что в первом случае хранились либо объекты целиком, либо
неудачные delta. Данная комада отправила фтопку всю старую логику и заново
создала все дельты между объектами. А дельты они все-таки меньше чем
объеты целиком.
Самое сложное -- это выбрать для каждого объекта "от кого смотреть
дельту". Вот --window грубо говоря увеличивает количество объектов от
которых пытаемся получить дельту, чтобы выбрать минимальную.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
В CC у ошибки какой-то UNKNOWN. Это он во всем виноват :-)
-- zerg in #2674
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] git archive
2007-12-07 19:42 ` Денис Смирнов
@ 2007-12-07 20:02 ` Alexey I. Froloff
2007-12-07 21:23 ` Денис Смирнов
0 siblings, 1 reply; 7+ messages in thread
From: Alexey I. Froloff @ 2007-12-07 20:02 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 345 bytes --]
* Денис Смирнов <mithraen@> [071207 22:50]:
> Самое сложное -- это выбрать для каждого объекта "от кого смотреть
> дельту". Вот --window грубо говоря увеличивает количество объектов от
> которых пытаемся получить дельту, чтобы выбрать минимальную.
Я добился аналогичного результата командой git gc --aggressive
--
Regards,
Sir Raorn.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] git archive
2007-12-07 20:02 ` Alexey I. Froloff
@ 2007-12-07 21:23 ` Денис Смирнов
0 siblings, 0 replies; 7+ messages in thread
From: Денис Смирнов @ 2007-12-07 21:23 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1023 bytes --]
On Fri, Dec 07, 2007 at 11:02:06PM +0300, Alexey I. Froloff wrote:
>> Самое сложное -- это выбрать для каждого объекта "от кого смотреть
>> дельту". Вот --window грубо говоря увеличивает количество объектов от
>> которых пытаемся получить дельту, чтобы выбрать минимальную.
AIF> Я добился аналогичного результата командой git gc --aggressive
agressive делает совсем не то :) Это значит "отправить фтопку все ранее
найденые дельты", но это не замена window/depth.
Собственно тред в gcc был начат тем, что человек воспользовавшись git gc
--agressive получил полный репо с gcc размером в полтора гига. А потом
ему объяснили почему нужно было пользоваться совсвем другим инструментом,
и что доку на опцию --aggressive у git gc надо вообще отправить фтопку за
обман людей.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
> Дык. Правда я не игрался с suspend.
Спит. Как слон :)
На 2.6.10 + swsusp2
-- mrkooll in hardware@
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] git archive
2007-12-07 19:31 ` Alexey I. Froloff
2007-12-07 19:42 ` Денис Смирнов
@ 2007-12-07 21:06 ` Dmitry V. Levin
2007-12-07 21:21 ` Денис Смирнов
1 sibling, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2007-12-07 21:06 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1568 bytes --]
On Fri, Dec 07, 2007 at 10:31:10PM +0300, Alexey I. Froloff wrote:
> * Денис Смирнов <mithraen@> [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
Надо не только результат сравнивать, но и затраты на его получение.
postfix$ time git repack -a -d -f && du -hs .git/objects/pack
Generating pack...
Done counting 6434 objects.
Deltifying 6434 objects...
100% (6434/6434) done
Writing 6434 objects...
100% (6434/6434) done
Total 6434 (delta 4510), reused 0 (delta 0)
Pack pack-b94cae6e279f53435c1c7bd8f43dc0364d5cbb0d created.
Removing unused objects 100%...
Done.
3.98user 0.08system 0:04.10elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+25660minor)pagefaults 0swaps
5.2M .git/objects/pack
postfix$ time git repack -a -d -f --depth=250 --window=250 && du -hs .git/objects/pack
Generating pack...
Done counting 6434 objects.
Deltifying 6434 objects...
100% (6434/6434) done
Writing 6434 objects...
100% (6434/6434) done
Total 6434 (delta 4651), reused 0 (delta 0)
Pack pack-b94cae6e279f53435c1c7bd8f43dc0364d5cbb0d created.
Removing unused objects 100%...
Done.
38.21user 0.24system 0:38.50elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+33309minor)pagefaults 0swaps
5.1M .git/objects/pack
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] git archive
2007-12-07 21:06 ` Dmitry V. Levin
@ 2007-12-07 21:21 ` Денис Смирнов
0 siblings, 0 replies; 7+ messages in thread
From: Денис Смирнов @ 2007-12-07 21:21 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1518 bytes --]
On Sat, Dec 08, 2007 at 12:06:54AM +0300, Dmitry V. Levin wrote:
>> * Денис Смирнов <mithraen@> [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@
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-12-07 21:23 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-07 16:46 [devel] git archive Денис Смирнов
2007-12-07 19:31 ` Alexey I. Froloff
2007-12-07 19:42 ` Денис Смирнов
2007-12-07 20:02 ` Alexey I. Froloff
2007-12-07 21:23 ` Денис Смирнов
2007-12-07 21:06 ` Dmitry V. Levin
2007-12-07 21:21 ` Денис Смирнов
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git