Можно ли использовать инструмент слияния LibreOffice / OpenOffice как `git-mergetool`?

Я наткнулся на старую запись в блоге, предлагающую это, К сожалению, только как нереализованная идея. Было ли это сделано за это время / как этого добиться? (Я слышал, что TortoiseGit может это сделать, но я использую Linux)

Альтернативой также может быть упомянутый подход повторного архивирования здесь, предлагая фильтр git, который отслеживает несжатые документы OpenDocuments и повторно сжимает их при оформлении заказа, предлагая возможность, по крайней мере, объединить (и сравнить) содержимое xml вместо двоичного мусора (или с потерями odt2txt), однако я не нашел никаких обновлений по этому подходу, последний сообщение об этом предупреждает о потенциальных недостатках этого подхода.


person Tobias Kienzler    schedule 03.08.2012    source источник
comment
Другой вариант, по крайней мере, с более поздними версиями Open / LibreOffice, - не сохранять в сжатый тип файла - в диалоговом окне «Сохранить как» вы можете выбрать Flat XML (.fods для электронных таблиц, .fodt для документов и т. Д.). Файлы будут значительно больше, но они будут объединяться гораздо более разумно, поскольку это примерно эквивалентно подходу повторного zip без многих осложнений.   -  person twalberg    schedule 03.08.2012
comment
@twalberg, спасибо за информацию. Вместе с --convert-to параметром командной строки этот фильтр может быть реализован при условии, что fod * ‹-› od * является обратимым (до внесения несущественных изменений). Если бы только это не потребовало закрытия Office ...   -  person Tobias Kienzler    schedule 03.08.2012
comment
(примечание для себя: эту ошибку можно обойти с помощью -env:UserInstallation=file:///some/path)   -  person Tobias Kienzler    schedule 03.08.2012
comment
@twalberg Я пробовал автоматизировать это, что, к сожалению, не работает полностью из-за некоторых метаданных. Но я просто проинструктирую всех пользователей (то есть в настоящее время меня) работать напрямую с .fod? файлами.   -  person Tobias Kienzler    schedule 03.08.2012
comment
Я никогда не пробовал автоматизировать это, как любые электронные таблицы и т. Д. Я хотел отслеживать, я просто сохраняю их таким образом для начала. Мне не приходилось иметь дело с преобразованием существующего объема работы, что, судя по другим вашим комментариям, кажется, что это не совсем гладкий процесс ...   -  person twalberg    schedule 03.08.2012
comment
связанный вопрос: Распакуйте файлы OpenOffice для лучшего хранения в системе контроля версий   -  person Tobias Kienzler    schedule 28.09.2012


Ответы (2)


Вы можете попробовать, и вы сообщите нам об этом. Насколько я помню, инструменты слияния настроены так, чтобы иметь 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

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

person Vince    schedule 03.08.2012
comment
Для меня это не самое главное, поэтому я надеялся, что кто-то уже попробовал ... Но да, если (скорее, когда) я сделаю это сам, Я опубликую здесь ответ (К черту ваши уловки джедаев :-P) - person Tobias Kienzler; 03.08.2012

Вдохновленный twalberg комментарий Я написал простые скрипты od2fod и fod2od, которые используют параметр --convert-to библиотеки Libre / OpenOffice для преобразования заархивированного xml в несжатый и наоборот. Из-за ошибки, запрещающей действия интерфейса командной строки при работе графического интерфейса пользователя 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 в _12 _, однако я заметил, что LO отслеживает лишние метаданные, которые тормозят круг clean-smudge. Так что пока это может использоваться только как несовершенный textconv инструмент для _15 _...

person Tobias Kienzler    schedule 03.08.2012