如何为PDF添加不同的Git diff工具?

时间:2013-10-28 09:42:35

标签: git pdf

我目前使用meld作为Git diff工具。这很好用,但我也有一些PDF版本控制下的PDF文件。总是当我发出git diff时,我会收到通知我的丑陋信息,这些信息无法比较这些二进制文件。

今天,我发现diffpdf效果很好。但是如何配置git以便为PDF使用diffpdf(并且仅适用于它们)?

我已经将git配置为像这样使用meld:

  1. 创建名为git-meld的脚本:

    #!/bin/bash
    meld "$2" "$5"
    
  2. 使其可执行:chmod +x git-meld

  3. 将其添加到我的配置文件中:git config --global diff.external git-meld
  4. 但显然我不能简单地采用这种方式同时使用diffpdf和meld。

2 个答案:

答案 0 :(得分:9)

您需要查看gitattributes手册页。基本上,您创建一个外部差异驱动程序,指定用于比较特定类型文件的自定义命令(这在~/.gitconfig${PROJECT}/.git/config中):

[diff "pdfdiff"]
    command = diffpdf

然后指定某些类型的文件使用该差异驱动程序(${PROJECT}/.gitattributes{PROJECT}/some/subdir/.gitattributes):

*.pdf diff=pdfdiff

然后除了pdf文件之外的所有内容都将使用您的普通git diff默认值,但是当您diffpdf时,pdf文件会调用git diff ...

答案 1 :(得分:0)

您可以使用git difftoolman git difftool)。

$ git difftool #opens in the tool defined in config: git config --get diff.tool
$ git difftool --tool meld # Opens in meld, regardless of what you configured.
$ git difftool --tool diffpdf # Opens in diffpdf.