summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-10-18 14:19:01 +0900
committerJunio C Hamano <gitster@pobox.com>2017-10-18 14:19:01 +0900
commit16ba0f44c0cac7c06cf7ce37498b8c83e0f3b69b (patch)
treed139e7e06986cee72d0ab30fc758ab827770b283
parent501ec0dad31a5379ac7620f8655de882844fd3c1 (diff)
parentcc0ea7c9e5c3d3bf9623415737b595c9d26b9b6d (diff)
downloadgit-16ba0f44c0cac7c06cf7ce37498b8c83e0f3b69b.tar.gz
Merge branch 'jk/diff-blob' into maint
"git cat-file --textconv" started segfaulting recently, which has been corrected. * jk/diff-blob: cat-file: handle NULL object_context.path
-rw-r--r--builtin/cat-file.c4
-rwxr-xr-xt/t8010-cat-file-filters.sh5
2 files changed, 7 insertions, 2 deletions
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 96b786e489..188ddc3e50 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -96,7 +96,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
return !has_object_file(&oid);
case 'w':
- if (!path[0])
+ if (!path)
die("git cat-file --filters %s: <object> must be "
"<sha1:path>", obj_name);
@@ -106,7 +106,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
break;
case 'c':
- if (!path[0])
+ if (!path)
die("git cat-file --textconv %s: <object> must be <sha1:path>",
obj_name);
diff --git a/t/t8010-cat-file-filters.sh b/t/t8010-cat-file-filters.sh
index d8242e467e..0f86c19174 100755
--- a/t/t8010-cat-file-filters.sh
+++ b/t/t8010-cat-file-filters.sh
@@ -51,6 +51,11 @@ test_expect_success '--path=<path> complains without --textconv/--filters' '
grep "path.*needs.*filters" err
'
+test_expect_success '--textconv/--filters complain without path' '
+ test_must_fail git cat-file --textconv HEAD &&
+ test_must_fail git cat-file --filters HEAD
+'
+
test_expect_success 'cat-file --textconv --batch works' '
sha1=$(git rev-parse -q --verify HEAD:world.txt) &&
test_config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <" &&