ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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 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

* 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

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