Может ли git обрабатывать zip-файлы как каталоги, а файлы внутри zip-архива - как капли?

Сценарий

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

Если я хочу поместить эти zip-файлы в репозиторий git , каждый zip-архив будет рассматриваться как blob-объект, поэтому всякий раз, когда я фиксирую, репозиторий увеличивается на размер zip-файла ... даже если только внутри изменился один небольшой текстовый файл!

Почему это реально

Файлы MS Word 2007/2010 .docx и Excel .xlsx - это файлы ZIP ...

Я хочу

Это есть ли случайный способ указать git , чтобы он обрабатывал zip-архивы не как файлы, а как каталоги, и обрабатывал их содержимое как файлы?

Преимущества

Но это не может сработать, вы говорите?

Я понимаю, что без дополнительных метаданных это привело бы к некоторой двусмысленности: on a git checkout git должен будет решить, создавать ли foo.zip/bar.txt как файл в обычном каталоге или как zip-файл. Однако я думаю, это можно решить с помощью параметров конфигурации.

Две идеи, как это можно сделать (если она еще не существует)

  • с использованием такой библиотеки, как minizip или IO :: Compress :: Zip ] внутри git
  • каким-то образом добавляется слой файловой системы, так что git фактически видит zip-файлы как каталоги, начиная с

65
задан Community 23 May 2017 в 12:17
поделиться