[devel] QI: git, экономия на трафике мнимая

Fr. Br. George =?iso-8859-1?q?george_=CE=C1_altlinux=2Eorg?=
Ср Янв 10 20:41:13 MSK 2007


On Wed, Jan 10, 2007 at 04:46:00PM +0300, Anton Farygin wrote:
> Fr. Br. George wrote:
> > On Sun, Jan 07, 2007 at 11:08:22PM +0300, Anton Farygin wrote:
> >> работает ли у нас сейчас дельта между тарболлами ?
> > По-видимому работает, как и для других файлов.
> А вот я как посмотрю - не работает.
Ты не на тарболлы смотришь, а на коммиты. Дельта между коммитами не работает.
> 
> Проверяется тривиально - xdelta между тарболлами.
Этим проверяется работоспособность xdelta, и только.

> > То есть это два разных файла: один ты удалил, другой завёл.
> Странно что git не умеет с этим бороться. собственно по опыту
> использования subversion - там дельта делается между двумя коммитами.
В git дельта делается между объектами.

> Распакованный архив мне не удобно, а вот с git-mv надо посмотреть будет.
> Но судя по всему когда-то такие фокусы работали и перестали работать с
> какого-то времени.
Ситуация такая: git принимает решение о том, делать ли дельту или rm+add
на основании уровня "похожести" объектов: некоторый сложный алгоритм на
основании размера, типа и имени. Плюс алгоритм, определяющий, нужно ли
вообще делать дельту, или проще rm+add. И у этого алгоритма есть
буфер некоторого размера (иначе сравнение может затянуться надолго).
Так что этот как фишка ляжет. Man git-pack-objects.

> как git
> заставить понимать, что xxx-1.0 и xxx-1.1 это один и тот же файл ?
Как я понял, git не работает с "одним и тем же" файлом. Есть старый
объект и новый, у них такой-то индекс похожести. Возможно, операция
git-mv - git-commit - (новый файл с тем же именем) - git-commit даст
больше шансов.

-- 
			George V. Kouryachy (aka Fr. Br. George)
			mailto:george at altlinux_ru



Подробная информация о списке рассылки Devel