如何获得Libre Office Writer保存的文件的有用git diff,并在命令行中输出?

时间:2018-10-18 12:00:39

标签: git libreoffice git-diff

默认.odt文件的git diff的默认版本未显示更改内容

  

二进制文件i / filename.odt和w / filename.odt不同

是否有办法显示真正更改的内容并保持文件可以由Libre Office直接编辑?

4 个答案:

答案 0 :(得分:3)

您还可以使用Libreoffice提出的平面xml格式。

.fodt文件格式。请参见提供良好链接的Libreoffice and version controlthis answer

通过链接:

  

如果文档另存为.fodt文件,则与.odt保持相同的数据   文件将包含。只是这次数据表示为   易于阅读的文本(这使得该版本的工作更加轻松   控制系统)且未压缩。因此,将文档另存为平面xml   使保持服务器空间要求和网络负载成为可能   低,以相对较低的成本在本地浪费了几千字节   硬盘。

答案 1 :(得分:1)

不要将odt文件存储在git中。您可以unzip并存储内容,而不是XML。您可能需要将换行符直接添加到XML文件中,即IIRC,只是XML单行代码。

答案 2 :(得分:1)

注意As mentioned,理想情况下,应避免对二进制文件进行版本控制, 当他们进行比较,整合和解决冲突时 more difficult


在git中,您可以为每个Office文件配置一个diff driver 在比较它们之前将它们转换为纯文本表示形式。

以下是一些可以使用的工具示例:

  • catdoc(用于Word)
  • catppt(对于Powerpoint)
  • odt2txt(适用于作家)
  • xls2csv(用于Excel)

首先,每个Office文件的文件类型都可以在 $HOME/.config/git/attributes个文件:

*.doc binary diff=doc
*.odt binary diff=odt
*.ppt binary diff=ppt
*.xls binary diff=xls

然后,为每个文件全局配置 diff驱动程序 类型

git config --global diff.doc.textconv catdoc
git config --global diff.odt.textconv odt2txt
git config --global diff.ppt.textconv catppt
git config --global diff.xls.textconv xls2csv

来源:https://medium.com/@mbrehin/git-advanced-diff-odt-pdf-doc-xls-ppt-25afbf4f1105

答案 3 :(得分:0)

对于基础知识,要以任何压缩的xml格式来区分文本,可以使用body { background-color: #ffffff; color: #000000; } /* Författaren är med small caps, storlek 16, centrerad och ett radbryte på 2,5 till nästa rad (orden).*/ #author{ text-align: center; font-variant: small-caps; font-size: 16pt; padding-bottom: 2.5cm; display: block; } /* Ordlistans språk står centrerad med small caps och storlek 24. Ett radbryte på 1,5 läggs till nästa rasd (författare)*/ #title{ text-align: center; font-variant: small-caps; font-size: 24pt; padding-bottom: 1.5cm; display: block; } /* Orden ska vara till vänster med storlek 12 och visas som en punktlista. */ .words{ font-family: "Georgia", serif; font-size: 12pt; text-align: left; display: list-item; list-style: square; padding-left:20px; margin-left:20px; } 来格式化xml并对其进行比较,例如,您已经完成

xmllint

,您现在可以比较git show master:summary.odt >${file1=`mktemp`} git show feature:summary.odt >${file2=`mktemp`} 7z x -o ${extract1=`mktemp -d`} $file1 7z x -o ${extract2=`mktemp -d`} $file2 find $extract1 $extract2 -iname \*.xml -execdir xmllint --format {} -o {}.pretty \; 来查看更改了。用普通的脚手架打包,您已经有了一个基本的diff驱动程序。您甚至可以用美化的xml替换xml,对其进行编辑,重新打包,一切都可以。