ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] I: about storing tarballs
@ 2006-04-19 22:56 Dmitry V. Levin
  2006-04-20  6:33 ` Kirill A. Shutemov
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Dmitry V. Levin @ 2006-04-19 22:56 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 3151 bytes --]

Hi,

Информация к размышлению на тему хранения исходного кода,
по мотивам короткого обсуждения в офисе.

$ xdelta delta -9 nmap-4.02Alpha{1,2}.tar.bz2 nmap.delta
$ ls -logS nmap*
-rw-r--r-- 1 1897778 Мар  4 07:32 nmap-4.02Alpha1.tar.bz2
-rw-r--r-- 1 1896625 Мар  9 01:42 nmap-4.02Alpha2.tar.bz2
-rw-r--r-- 1 1885642 Апр 20 00:00 nmap.delta
Подтверждение известного факта: несильно отличающиеся пожатые bzip'ом
файлы отличаются настолько сильно, что xdelta неэффективна.

$ xdelta delta -9 nmap-4.02Alpha{1,2}.tar nmap.delta
$ ls -logS nmap*
-rw-r--r-- 1 10485760 Мар  4 07:32 nmap-4.02Alpha1.tar
-rw-r--r-- 1 10485760 Мар  9 01:42 nmap-4.02Alpha2.tar
-rw-r--r-- 1    28612 Апр 20 00:00 nmap.delta
Ну xdelta она и есть xdelta.

$ xdelta delta -9 nmap-4.02Alpha{1,2}.tar.gz nmap.delta
$ ls -logS nmap*
-rw-r--r-- 1 2377616 Мар  4 07:32 nmap-4.02Alpha1.tar.gz
-rw-r--r-- 1 2376325 Мар  9 01:42 nmap-4.02Alpha2.tar.gz
-rw-r--r-- 1   28621 Апр 20 00:00 nmap.delta
Напоминание о том, что xdelta по умолчанию распаковывает файлы,
пожатые gzip'ом, прежде чем вычислять дельту.

$ git --version
git version 1.3.0
$ git-init-db
defaulting to local storage area
$ git-add nmap-4.02Alpha1.tar
$ git-commit -a -m 'added nmap-4.02Alpha1.tar'
Committing initial tree 85258d162dda0117f7708bccf5d1e9349c99a1c6
$ git-rm nmap-4.02Alpha1.tar
$ git-add nmap-4.02Alpha2.tar
$ git-commit -a -m 'replaced nmap-4.02Alpha1.tar with nmap-4.02Alpha2.tar'
$ du -ksc .git/objects/*
2332    .git/objects/02
8       .git/objects/14
8       .git/objects/21
8       .git/objects/7f
8       .git/objects/85
2332    .git/objects/a5
4       .git/objects/info
4       .git/objects/pack
4704    итого
Отсюда видно, что git, как и следовало ожидать, хранит объекты
в пожатом gzip'ом виде.
$ git-repack -a -d -q
Pack pack-2bfd07a53828de0ec93e61d6382c3cd650da97d5 created.
$ du -ksc .git/objects/*
8       .git/objects/info
2372    .git/objects/pack
2380    итого
Отсюда видно, что в упакованном виде объекты занимают примерно столько же
места, что и nmap-4.02Alpha1.tar.gz+nmap.delta; это наводит на мысль об
используемом алгоритме; RTFS эту мысль подтверждает.

$ git-init-db
defaulting to local storage area
$ git-add nmap-4.02Alpha1.tar.gz
$ git-commit -a -m 'added nmap-4.02Alpha1.tar.gz'
Committing initial tree 4233a782960e126094163106d204074388745589
$ git-rm nmap-4.02Alpha1.tar.gz
$ git-add nmap-4.02Alpha2.tar.gz
$ git-commit -a -m 'replaced nmap-4.02Alpha1.tar.gz with nmap-4.02Alpha2.tar.gz'
$ du -ksc .git/objects/*
8       .git/objects/12
8       .git/objects/16
2324    .git/objects/18
8       .git/objects/42
8       .git/objects/45
2328    .git/objects/d9
4       .git/objects/info
4       .git/objects/pack
4692    итого
$ git-repack -a -d -q
Pack pack-8d8d591db747584462d34e3b6a8bc6fa498a5f20 created.
$ du -ksc .git/objects/*
8       .git/objects/info
4656    .git/objects/pack
4664    итого
Отсюда видно, что с файлами, пожатыми gzip'ом, экономии в git не получается.
Таким образом, в git лучше класть непожатые файлы, тогда при желании
их можно будет хранить экономно.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2006-04-26 19:14 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-19 22:56 [devel] I: about storing tarballs Dmitry V. Levin
2006-04-20  6:33 ` Kirill A. Shutemov
2006-04-20  9:33 ` Anton Farygin
2006-04-20 11:07   ` Anton D. Kachalov
2006-04-21  7:49     ` Sviatoslav Sviridov
2006-04-21 12:31       ` Ildar Mulyukov
2006-04-26  8:14   ` Michael Shigorin
2006-04-26 10:30     ` Dmitry V. Levin
2006-04-26 12:24       ` Michael Shigorin
2006-04-26 13:33         ` Genix
2006-04-26 13:44           ` Michael Shigorin
2006-04-26 19:14         ` Dmitry V. Levin
2006-04-21  7:41 ` Sviatoslav Sviridov

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