Re: [Question] Diff text filters and git add
- From
Jeff King <peff@peff.net>
- Date
- Jul 9, 2019, 21:51 UTC
- Message-ID
- <20190709215104.GA20936@sigill.intra.peff.net>
- In-Reply-To
- <009201d5369f$4da5d030$e8f17090$@nexbridge.com>
On Tue, Jul 09, 2019 at 05:43:05PM -0400, Randall S. Becker wrote:
Show 8 quoted lines
> I am trying to do something a bit strange and wonder about the best way to > go. I have a text filter that presents content of very special binary file > formats using textconv. What I am wondering is whether using the textconv > mechanism is sufficient to have git calculate the file signature or whether > I need to use an external diff engine, so that git add behaves in a stable > manner (i.e., does git internally use the textconv mechanism for evaluating > whether a file changed or whether the external diff engine is required, or > whether this is even possible at all).
No, textconv only applies when generating a diff to output, and will never impact what's stored in Git.
It sounds like you might want a clean filter instead, to sanitize the file contents as they come into Git (and perhaps a matching smudge filter to convert back to the working-tree version if necessary).
You're talking about "the diff engine" here, but note that git-add would never do a diff at all. It cares only about full sha1s (and optimizes out re-computing the sha1 on each invocation by using stat data). So outside of clean/smudge, there's nothing else going on.
-Peff