Как рассматривать несжатую папку как сжатый файл? - PullRequest
4 голосов
/ 13 февраля 2012

Мы все знаем об инструментах сторонних или встроенных в ОС для обработки сжатых файлов как папок.Но кто-нибудь знает, как сделать обратное: заставить операционную систему думать, что стандартная папка, содержащая некоторые файлы, на самом деле является заархивированным файлом?Требуются решения для Windows, Linux и Mac (хотя я понимаю, что ни одно решение не будет работать на всех этих платформах).

Суть вопроса в том, чтобы заставить системы контроля версий исходного кода, такие как SVN, Git или Mercurial,быть более эффективным в хранении различий между версиями документов, которые на самом деле являются сжатыми папками (с различными XML-файлами, небольшим количеством метаданных и миниатюрами или двумя), такими как ODT и DOCX.аналогичные утилиты, которые используют перехватчики кодирования / декодирования Git и Mercurial для преобразования данных в хранилище и из него.Это прекрасное решение проблемы, но я обнаружил, что хочу просмотреть репозиторий, содержащий несжатое содержимое папки документа, и отдельно отразить в нем файлы.

Это означает, что несжатое содержимое должно быть добавлено в репозиторий,не tar-версия или сжатая версия документа без сжатия.Это, в свою очередь, означает, что извлечение из хранилища создает несжатую папку, полную файлов, представляющих документ.Отсюда мой оригинальный вопрос.

Мифический продукт, который я представляю, обнаружит папку, имя которой содержит «зарегистрированное» расширение (например, «docx»), а затем «перемонтирует» ее как сжатый файл того же самогоname.

Альтернативно, кто-нибудь знает, как использовать ловушки Git / Mercurial для кодирования / декодирования для достижения этой мечты?

1 Ответ

2 голосов
/ 02 июля 2012

Чтобы решить эту проблему хорошим способом, вы можете использовать переводчик Hurd с nsmux - хотя изменение вашего ядра, вероятно, является большим шагом для этого:)

http://www.gnu.org/software/hurd/hurd/translator/nsmux.html

Возможно, вы сможете адаптировать переводчик tarfs. Это позволит вам открывать папки с помощью folder,,zip.

Но для этого потребуется немало работы.

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

...