[devel] QI: git, экономия на трафике мнимая
Anton Farygin
=?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Ср Янв 10 16:46:00 MSK 2007
Fr. Br. George wrote:
> On Sun, Jan 07, 2007 at 11:08:22PM +0300, Anton Farygin wrote:
>> работает ли у нас сейчас дельта между тарболлами ?
> По-видимому работает, как и для других файлов.
А вот я как посмотрю - не работает.
>
>> Т.к. в данный момент сижу через GPRS, то объёмы трафика весьма заметны..
>> обновление остановил на 3-х мегабайтах..
>> по моим прикидкам трафик должен составлять не более ста килобайт.
> Ты уверен, что оба тридцатимегатайтных архива имеют
> одинаковую структуру? Мало ли, что там они у себя в upstream поменяли...
> Теоретически можно изготовить два тарболла с полностью идентичной
> файловой системой, дельта между которыми будет 100%.
>
> Впрочем, это так, к слову; см. ниже.
Проверяется тривиально - xdelta между тарболлами.
>
>> Возникает стойкое мнение, что перекачиваются файлы целиком (но в сжатом
>> виде), вместо дельт.
> Разумеется:
> $ git-diff HEAD^^ | awk '/ImageMagick-6.3.1-3.tar/,/ImageMagick.desktop/{print}'
> diff --git a/ImageMagick-6.3.1-3.tar b/ImageMagick-6.3.1-3.tar
> deleted file mode 100644
> index f4ceab0..0000000
> Binary files a/ImageMagick-6.3.1-3.tar and /dev/null differ
> diff --git a/ImageMagick-6.3.1-6.tar b/ImageMagick-6.3.1-6.tar
> new file mode 100644
> index 0000000..1eb2b27
> Binary files /dev/null and b/ImageMagick-6.3.1-6.tar differ
> diff --git a/ImageMagick.desktop b/ImageMagick.desktop
>
> То есть это два разных файла: один ты удалил, другой завёл.
Странно что git не умеет с этим бороться. собственно по опыту
использования subversion - там дельта делается между двумя коммитами.
Соотственно размер коммита очень маленький.
>
>> с этим надо что-то сделать..
> Одно из двух:
> либо делать git-mv (хотя это всё равно без гарантии, см. выше),
> либо хранить таки распакованный архив (gear-srpmimport рулит).
Распакованный архив мне не удобно, а вот с git-mv надо посмотреть будет.
Но судя по всему когда-то такие фокусы работали и перестали работать с
какого-то времени. Может быть нужно соблюдать порядок ? (сначала add,
потом rm) ?
Хотя я сомневаюсь. Есть ещё варианты рещения этого вопроса ? как git
заставить понимать, что xxx-1.0 и xxx-1.1 это один и тот же файл ?
Rgds,
Rider
Подробная информация о списке рассылки Devel