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.
6 Answers. You can use DiffPDF for this. From the description: DiffPDF is used to compare two PDF files.
Now git will show you proper text-diffs for your pdf files when using git diff or when looking at the different commits.
You can run the git diff HEAD command to compare the both staged and unstaged changes with your last commit. You can also run the git diff <branch_name1> <branch_name2> command to compare the changes from the first branch with changes from the second branch. Order does matter when you're comparing branches.
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...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With