Умно ли обрабатывает git zip-архив, в котором регулярно изменяется только один из файлов? - PullRequest
5 голосов
/ 02 апреля 2012

В одном из моих проектов git у меня есть zip-файл, который объединяет набор библиотек java.ZIP-файл имеет размер 4,5 МБ и содержит 11 файлов.Регулярно меняется только одна из библиотек, над которой я работаю (порядка 50 КБ).Другие библиотеки являются статическими.

Было бы замечательно, если бы git умно изменял только это небольшое изменение в zip-файле, а не заменял весь zip-файл при каждом коммите.Иначе, мой репозиторий git будет очень быстро расти.

Когда я обновил свою библиотеку и пересоздал zip-файл, а также зафиксировал + push изменения, я заметил, что git записывает объекты порядка <100 КБ всервер, как <em>«Написание объектов: 100% (58/58), 77,64 КиБ, готово.» .Таким образом, похоже, что git умно отправляет только измененную часть zip, а не весь 4.5-мегабайтный zip-файл снова и снова.

Действительно ли git умно обрабатывает zip-файлы?

1 Ответ

5 голосов
/ 02 апреля 2012

Git знает, как обрабатывать различия в двоичных файлах, поэтому, если в zip-файле изменилось несколько файлов, он не будет хранить весь файл при каждом коммите.

В качестве примечания, я бы не рекомендовал хранить zip в вашем репозитории, так как он может быть артефактом (то есть результатом компиляции) вашего кода, если только это не репозиторий, хранящий только ваши артефакты.

...