Subject: Re: make git ignore the timestamp embedded in PDFs

From: Johannes Sixt <[email-masked]>
Date: Sat, 18 May 2013 18:32:58 +0200

Am 18.05.2013 09:42, schrieb Andreas Leha:
>> Am 14.05.2013 15:17, schrieb Andreas Leha:
>>> 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.
>>> ...
>>> What I tried is a filter:
>>> ,----[ ~/.gitconfig ]
>>> | [filter "pdfresetdate"]
>>> |         clean = pdfresetdate
>>> `----
>>>
>>> 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.
>>
>> I'm using cleaned files every now and then, but not on Linux. I have
>> never observed this behavior recently.
>>
>> If you 'git add' the file, does it keep its modified state? Does 'git
> 
> yes.
> 
>> diff' tell a difference?
> 
> no.

I do not believe you. I'm sure that "Binary files differ" was reported.
The reason is that your pdfresetdate script is not idempotent. Look:

$ pdfresetdate < x.pdf > y.pdf
$ pdfresetdate < y.pdf > z.pdf
$ md5sum x.pdf y.pdf z.pdf
c46a7097574a035e89d1a46d93c83528  x.pdf
8e6d942b4cc7d8a4dfe6898867573617  y.pdf
e6333bc0f8ab9781d3e1d811a392d516  z.pdf

A file that was already cleaned by the clean filter must not be
modified, i.e., the y.pdf and z.pdf should be identical. But they are not.

Fix your clean filter.

-- Hannes