LibreOffice: Как сохранить в формате Git friendly?

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

Есть ли способ, с помощью которого я могу сказать LibreOffice сохранять в формате Git friendly?

Например, сохраняя файл в формате zip без сжатия (ala .tar) или просто сохраняя документ в формате dir, содержащем те же файлы, что и распакованный файл zip.

1 ответ

Решение

Есть ли способ, с помощью которого я могу сказать LibreOffice сохранять в формате Git friendly?

Вы можете сохранить ваши файлы как плоский XML (fodt) вместо odt:

Если документ сохранен как .fodt файл хранит те же данные .odt файл будет содержать. Только то, что на этот раз данные представлены в виде удобочитаемого текста (что значительно облегчает работу системы контроля версий) и не сжимаются. Таким образом, сохранение документа в виде простого XML-кода позволяет сохранить требования к серверному пространству и нагрузку на сеть на низком уровне при относительно низкой стоимости траты нескольких килобайт на локальных жестких дисках.

Исходный LibreOffice и контроль версий


Дальнейшее чтение

ReZipDoc - это инструмент, который использует фильтры git clean (и, возможно, smudge) для файлов на основе ZIP, хранящихся в git (ODT - это в основном файл ZIP).

ИТ-специалисты просто повторно заархивируют ODT без сжатия и предписывают git обрабатывать ODT как текстовые файлы. Помимо включенных изображений, данные в ODT и, следовательно, файлы в ODT ZIP в основном основаны на тексте. Таким образом, этот подход отлично работает с дельта-сжатием git. LibreOffice сам по себе не имеет проблем с чтением несжатых файлов ODT, и, следовательно, у этого подхода нет недостатков, кроме необходимости установки ReZipDoc в локальных репозиториях всех соавторов.

Теоретически окончательный размер репозитория git должен быть более или менее таким же, как при использовании FODT, при условии, что LibreOffices последовательно форматирует текстовые части в обоих случаях.

Я написал сценарий bash, который расширяет документы Libreoffice в удобный для git формат - см. https://github.com/timwiel/libreoffice2git

Другие вопросы по тегам