Merge branch 'ls/clean-smudge-override-in-config'

Clean/smudge filters defined in a configuration file of lower
precedence can now be overridden to be a pass-through no-op by
setting the variable to an empty string.

* ls/clean-smudge-override-in-config:
  convert: treat an empty string for clean/smudge filters as "cat"
This commit is contained in:
Junio C Hamano 2016-02-10 14:20:07 -08:00
commit a3764e7da7
2 changed files with 17 additions and 1 deletions

View File

@ -434,7 +434,7 @@ static int apply_filter(const char *path, const char *src, size_t len, int fd,
struct async async; struct async async;
struct filter_params params; struct filter_params params;
if (!cmd) if (!cmd || !*cmd)
return 0; return 0;
if (!dst) if (!dst)

View File

@ -252,4 +252,20 @@ test_expect_success "filter: smudge empty file" '
test_cmp expected filtered-empty-in-repo test_cmp expected filtered-empty-in-repo
' '
test_expect_success 'disable filter with empty override' '
test_config_global filter.disable.smudge false &&
test_config_global filter.disable.clean false &&
test_config filter.disable.smudge false &&
test_config filter.disable.clean false &&
echo "*.disable filter=disable" >.gitattributes &&
echo test >test.disable &&
git -c filter.disable.clean= add test.disable 2>err &&
test_must_be_empty err &&
rm -f test.disable &&
git -c filter.disable.smudge= checkout -- test.disable 2>err &&
test_must_be_empty err
'
test_done test_done