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