Code

Add a setting to require a filter to be successful
authorJehan Bing <jehan@orb.com>
Fri, 17 Feb 2012 01:19:03 +0000 (17:19 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Feb 2012 15:37:08 +0000 (07:37 -0800)
commit36daaaca0046542f4d5576ad5766ac55f43e3fc3
tree2c724d58d107f444acc09d69e72bbfc33fee42ce
parent0364bb135e285d4118b69979ade3078fab50e08a
Add a setting to require a filter to be successful

By default, a missing filter driver or a failure from the filter driver is
not an error, but merely makes the filter operation a no-op pass through.
This is useful to massage the content into a shape that is more convenient
for the platform, filesystem, and the user to use, and the content filter
mechanism is not used to turn something unusable into usable.

However, we could also use of the content filtering mechanism and store
the content that cannot be directly used in the repository (e.g. a UUID
that refers to the true content stored outside git, or an encrypted
content) and turn it into a usable form upon checkout (e.g. download the
external content, or decrypt the encrypted content).  For such a use case,
the content cannot be used when filter driver fails, and we need a way to
tell Git to abort the whole operation for such a failing or missing filter
driver.

Add a new "filter.<driver>.required" configuration variable to mark the
second use case.  When it is set, git will abort the operation when the
filter driver does not exist or exits with a non-zero status code.

Signed-off-by: Jehan Bing <jehan@orb.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/gitattributes.txt
convert.c
t/t0021-conversion.sh