有没有等效于odt2txt的方法来为fodt格式的LibreOffice文件生成可读的git diff



我有受git控制的LibreOffice Writer文件。我以前使用过.odt格式,并使用odt2txt通过包含来获得可读diff

[diff "odt"]
textconv = odt2txt

在我的gitconfig文件中。我尝试使用XML文本.fodt格式,因为文本.fodt格式比二进制.odt格式更适合git。

问题是,git-diff绝大多数都是XML标记,掩盖了Writer文件中更改的实际文本。实际上,使用odtodt2txt要比使用fodt容易得多。

有没有任何程序可以去掉所有的XML标记,只输出纯文本(类似于odt2txtodt文件中输出的内容(,这样我就可以在diffs中看到更改的实际文本?

我在Windows下,但我使用Cygwin可以访问许多Linux工具,包括odt2txt。但是,请注意,基于Linux的建议,如指定

textconv = sh -c 'odt2txt --raw-input "$0"'

即使安装了Cygwin,也无法在Windows下工作。Windows下的Git似乎需要一个没有操作数的命令作为过滤器。

(事实上,我通常使用SourceTree进行日常git使用,包括查看diff,并且SourceTree不换行其diff,尽管已经打开了多年的增强请求;但即使在原生git中,这也是一个问题。(

是的,使用odt2txt --raw-input从平面.fodt生成可读的txt

UNIX系统/带有sh bash的系统:

由于git-config中的textconv语句不接受参数,您应该在其语句中编写以下解决方法:

[diff "fodt"]
textconv = sh -c 'odt2txt --raw-input "$0"'

所有系统:

更改源代码中的这一行,然后编译(您可以将程序名称更改为在系统中同时具有这两个名称,例如,您可以将其称为rawinputodt2txt(:文件odt2txt.c第48行:其中:

static int opt_raw_input = 0;

写入:

static int opt_raw_input = 1;

因此,在本次编译中,您将默认使用--raw-input。您应该添加到配置文件中的额外行只有:

[diff "fodt"]
textconv = rawinputodt2txt

额外解释:此功能"CCD_ 18";它使用的是最新版本0.5 commit 7f18c95(0.5版本第一次发布时没有这个数字,例如:Debian GNU/Linux中打包的0.5-1+b2版本没有(。

编辑:因为CCD_;原始输入";我在odt2txt问题跟踪器中报告了它,但我没有为它写一个完整的补丁

我最终破解了自己的fodt2txt驱动程序。它并不完美,但它完成了我需要的大部分。

相关内容

最新更新