Может ли инструмент слияния 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

Надеюсь, поможет

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