代码之家  ›  专栏  ›  技术社区  ›  reducing activity

如何在命令行中获得Libre Office Writer保存的文件的git diff?

  •  0
  • reducing activity  · 技术社区  · 6 年前

    的默认版本 git diff 默认情况下,odt文件不显示更改的内容

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

    有没有一个方法来显示什么是真正的改变,并保持文件直接编辑自由行办公室?

    4 回复  |  直到 6 年前
        1
  •  4
  •   reducing activity    4 年前

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

    .fodt 文件格式。看到了吗 Libreoffice and version control this answer 这提供了很好的链接。

    如果文档另存为.fodt文件,则它会保留与.odt相同的数据 文件将包含。只是这次的数据表示为 人类可读的文本(这使得版本的工作更容易) 以相对较低的成本在本地服务器上浪费了几千字节 硬盘。

        2
  •  2
  •   Wolfram Rösler    4 年前

    安装“Libre Office to text”转换器:

    $ sudo apt install unoconv catdoc
    $ pip install python-pptx
    

    复制 https://gitlab.com/wolframroesler/snippets/-/blob/master/git-pptx-textconv.py

    将以下内容添加到 ~/.gitconfig

    [diff "doc"]
        textconv=catdoc
    [diff "odt"]
        textconv=odt2txt
    [diff "odp"]
        textconv=odp2txt
    [diff "ods"]
        textconv=ods2txt
    [diff "ppt"]
        textconv=catppt
    [diff "pptx"]
        textconv=/location/of/git-pptx-textconv.py
    

    将以下内容添加到~/.config/git/attributes(或者,也可以添加到项目根目录中的.gittributes文件):

    *.doc diff=doc
    *.odp diff=odp
    *.ods diff=ods
    *.odt diff=odt
    *.ppt diff=ppt
    *.pptx diff=pptx
    

    更多详细信息: https://gitlab.com/wolframroesler/snippets#manage-office-files-in-git

        3
  •  1
  •   kelvin    6 年前

    : As mentioned 在进行比较、整合和解决冲突时 more difficult .


    diff driver 特定于每个office文件 将它们转换为纯文本表示,然后再进行比较。

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

    • catdoc(用于Word)
    • odt2txt(用于编写器)
    • xls2csv(用于Excel)

    首先是 文件类型 可以在中全局配置每个office文件的 $HOME/.config/git/attributes

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

    然后,全局配置 差分驱动器 对于每一个 类型

    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

        4
  •  0
  •   choroba    6 年前

    不要在git中存储odt文件。你可以 unzip 并存储内容,而不是XML。您可能需要按原样向XML文件添加新行,IIRC,只是XML单行。

        5
  •  0
  •   jthill    6 年前

    xmllint 要格式化xml并区分它们,假设您已经完成了

    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 \;
    

    现在你可以区分 .pretty