Reputation: 136379
I currently use meld
as a Git diff tool. This works great, but I also have some PDF files under version control. Always when I make git diff
I get ugly messages that inform me, that meld can't compare those binary files.
Today, I've found diffpdf
which works great. But how can I configure git to use diffpdf for PDF (and only for them)?
I've configured git to use meld like this:
Create a script called git-meld
:
#!/bin/bash
meld "$2" "$5"
Make it executable: chmod +x git-meld
git config --global diff.external git-meld
But obviously I can't simply adapt this way to use both, diffpdf and meld.
Upvotes: 10
Views: 3630
Reputation: 62389
You need to look at the gitattributes
manual page. Basically, you create an external diff driver that specifies a custom command to use for comparing a specific type of file (this goes in ~/.gitconfig
or ${PROJECT}/.git/config
):
[diff "pdfdiff"]
command = diffpdf
Then you specify that certain types of files use that diff driver (in ${PROJECT}/.gitattributes
or {PROJECT}/some/subdir/.gitattributes
):
*.pdf diff=pdfdiff
Then everything except pdf files will use your normal git diff
defaults, but pdf files will call diffpdf
when you git diff
them...
Upvotes: 12
Reputation: 27563
You can use git difftool
(man 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.
Upvotes: 0