我偶然发现了一篇旧博客文章提出了这一点,不幸的是,这只是一个未实现的想法。这是否同时完成/如何实现?(我听说 TortoiseGit 可能会这样做,但我正在运行 Linux)
另一种选择也可能是这里提到的重新压缩方法,建议使用 git 过滤器跟踪未压缩的 OpenDocument 并在结帐时重新压缩它们,这将提供至少合并(和区分)xml 内容而不是二进制垃圾(或有损odt2txt),但是我也没有找到有关此方法的任何更新,关于此的最后一篇文章警告了此方法中的潜在缺陷。
我偶然发现了一篇旧博客文章提出了这一点,不幸的是,这只是一个未实现的想法。这是否同时完成/如何实现?(我听说 TortoiseGit 可能会这样做,但我正在运行 Linux)
另一种选择也可能是这里提到的重新压缩方法,建议使用 git 过滤器跟踪未压缩的 OpenDocument 并在结帐时重新压缩它们,这将提供至少合并(和区分)xml 内容而不是二进制垃圾(或有损odt2txt),但是我也没有找到有关此方法的任何更新,关于此的最后一篇文章警告了此方法中的潜在缺陷。
你可以试试,你会告诉我们的。据我记得,合并工具被配置为有 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
希望能帮助到你
受twalberg评论的启发,我编写了简单的脚本od2fod
,fod2od
并使用--convert-to
Libre/OpenOffice 的参数将压缩的 xml 转换为未压缩的 xml,反之亦然。由于在 LibreOffice GUI 运行时拒绝 CLI 操作的错误,我不得不编写解决方法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
现在可以设置 aclean
并smudge
过滤.gitattributes
,但我注意到 LO 会跟踪多余的元数据,这会阻碍clean-smudge
循环。所以现在这只能作为一个不完美的textconv
工具git-diff
......