Может ли инструмент слияния LibreOffice / OpenOffice использоваться как `git-mergetool`?
Я наткнулся на старый пост в блоге, предлагающий это, к сожалению, только как неосуществленную идею. Было ли это сделано за это время / как это может быть достигнуто? (Я слышал, что TortoiseGit может сделать это, но я использую Linux)
Альтернативой также может быть упомянутый здесь подход повторного сжатия, предлагающий фильтр git, который отслеживает несжатые OpenDocuments и повторно сжимает их при извлечении, что дает возможность по меньшей мере объединить (и изменить) содержимое xml вместо двоичного мусора (или потеря odt2txt), однако я также не нашел никаких обновлений об этом подходе, последний пост об этом предупреждает о потенциальных недостатках этого подхода.
2 ответа
Вдохновленный комментариями twalberg, я написал простые сценарии od2fod
а также fod2od
которые используют --convert-to
параметр Libre/OpenOffice, чтобы преобразовать сжатый xml в несжатый и наоборот. Из-за ошибки, препятствующей действиям CLI при работе графического интерфейса LibreOffice, мне пришлось написать обходной путь loInstance
:
#!/bin/bash
tmpdir=$(mktemp -d)
cp -rf ~/.libreoffice $tmpdir
soffice -env:UserInstallation=file://$tmpdir $@
rm -rf $tmpdir
od2fod
а также fod2od
просты, хотя:
#!/bin/bash
loInstance --headless --convert-to f${1#*.} $1
а также
#!/bin/bash
loInstance --headless --convert-to ${1#*.f} $1
Теперь можно настроить clean
а также smudge
фильтровать .gitattributes
Однако я заметил, что LO отслеживает лишние метаданные, которые тормозят clean-smudge
круг. Так что пока это можно использовать только как несовершенный textconv
инструмент для git-diff
...
Вы можете попробовать это, и вы дадите нам знать. Из того, что я помню, инструменты слияния настроены на 4 входа, поэтому вам придется настроить Git для использования его в качестве инструмента слияния.
Вы должны добавить пару строк в конфигурационном файле, merge.tool
, mergetool.<tool>.path
а также mergetool.<tool>.cmd
http://www.kernel.org/pub/software/scm/git/docs/git-config.html (поиск "merge.tool" на странице)
http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html
Надеюсь, поможет