Hi all,
how can I make git ignore the time stamp(s) in a PDF. Two PDFs that differ only in these time stamps should be considered identical.
Here is an example: ,---- | > pdfinfo some.pdf | Title: R Graphics Output | Creator: R | Producer: R 2.15.1 | CreationDate: Thu Jan 24 13:43:31 2013 <== these entries | ModDate: Thu Jan 24 13:43:31 2013 <== should be ignored | Tagged: no | Pages: 1 | Encrypted: no | Page size: 504 x 504 pts | File size: 54138 bytes | Optimized: no | PDF version: 1.4 `----
What I tried is a filter: ,----[ ~/.gitconfig ] | [filter "pdfresetdate"] | clean = pdfresetdate `----
With this filter script:
,----[ pdfresetdate ]
| #!/bin/bash
|
| FILEASARG=true
| if [ "$#" == 0 ]; then
| FILEASARG=false
| fi
|
| if $FILEASARG ; then
| FILENAME="$1"
| else
| FILENAME=`mktemp`
| cat /dev/stdin > "${FILENAME}"
| fi
|
| TMPFILE=`mktemp`
| TMPFILE2=`mktemp`
|
| ## dump the pdf metadata to a file and replace the dates
| pdftk "$FILENAME" dump_data | sed -e '{N;s/Date\nInfoValue: D:.*/Date\nInfoValue: D:19790101072619/}' > "$TMPFILE"
|
| ## update the pdf metadata
| pdftk "$FILENAME" update_info "$TMPFILE" output "$TMPFILE2"
|
| ## overwrite the original pdf
| mv -f "$TMPFILE2" "$FILENAME"
|
| ## clean up
| rm -f "$TMPFILE"
| rm -f "$TMPFILE2"
| if [ -n $FILEASARG ] ; then
| cat "$FILENAME"
| fi
`----This 'works' as far as the committed pdf indeed has the date reset to my default value.
However, when I re-checkout the files, they are marked modified by git.
So, my question is: How can I make git *completely* ignore the embedded date in the PDF?
Many thanks in advance for any help!
Regards, Andreas
PS: I had posted this question (without much success) here: http://stackoverflow.com/questions/16058187/make-git-ignore-the-date-in-pdf-files and with no answer on the git-users mailing list: https://groups.google.com/forum/#!topic/git-users/KqtecNa3cOc