summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-02-10 14:20:07 -0800
committerJunio C Hamano <gitster@pobox.com>2016-02-10 14:20:07 -0800
commita3764e7da7ae2c30e2e1bbeaa0961a17bced2078 (patch)
tree4cc71f632465d8043e6d523bdfe6837f7c4e1e42
parentfbf4bdfbf1ce543818363e7bc9286d73a61c0648 (diff)
parent1a8630dc3b1cc6f1361a4e5d94630133c24c97d9 (diff)
downloadgit-a3764e7da7ae2c30e2e1bbeaa0961a17bced2078.tar.gz
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"
-rw-r--r--convert.c2
-rwxr-xr-xt/t0021-conversion.sh16
2 files changed, 17 insertions, 1 deletions
diff --git a/convert.c b/convert.c
index 4bb4ec1d83..8cd6222a26 100644
--- a/convert.c
+++ b/convert.c
@@ -434,7 +434,7 @@ static int apply_filter(const char *path, const char *src, size_t len, int fd,
struct async async;
struct filter_params params;
- if (!cmd)
+ if (!cmd || !*cmd)
return 0;
if (!dst)
diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh
index 718efa04d3..7bac2bcf26 100755
--- a/t/t0021-conversion.sh
+++ b/t/t0021-conversion.sh
@@ -252,4 +252,20 @@ test_expect_success "filter: smudge empty file" '
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