git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael J Gruber <git@drmicha.warpmail.net>
To: git@vger.kernel.org
Cc: Jeff King <peff@peff.net>, Junio C Hamano <gitster@pobox.com>,
	Matthieu Moy <Matthieu.Moy@imag.fr>
Subject: [PATCHv3 4/7] cat-file: do not die on --textconv without textconv filters
Date: Fri, 10 May 2013 17:10:13 +0200	[thread overview]
Message-ID: <b54866d8875298429f4756c9e5c268cbcbeee710.1368197380.git.git@drmicha.warpmail.net> (raw)
In-Reply-To: <7vy5c1l6nb.fsf@alter.siamese.dyndns.org>
In-Reply-To: <cover.1368197380.git.git@drmicha.warpmail.net>

When a command is supposed to use textconv filters (by default or with
"--textconv") and none are configured then the blob is output without
conversion; the only exception to this rule is "cat-file --textconv".

Make it behave like the rest of textconv aware commands.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
---
 builtin/cat-file.c           | 18 ++++++++----------
 t/t8007-cat-file-textconv.sh | 20 +++++---------------
 2 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 045cee7..bd62373 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -48,6 +48,14 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name)
 	case 'e':
 		return !has_sha1_file(sha1);
 
+	case 'c':
+		if (!obj_context.path[0])
+			die("git cat-file --textconv %s: <object> must be <sha1:path>",
+			    obj_name);
+
+		if (textconv_object(obj_context.path, obj_context.mode, sha1, 1, &buf, &size))
+			break;
+
 	case 'p':
 		type = sha1_object_info(sha1, NULL);
 		if (type < 0)
@@ -70,16 +78,6 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name)
 		/* otherwise just spit out the data */
 		break;
 
-	case 'c':
-		if (!obj_context.path[0])
-			die("git cat-file --textconv %s: <object> must be <sha1:path>",
-			    obj_name);
-
-		if (!textconv_object(obj_context.path, obj_context.mode, sha1, 1, &buf, &size))
-			die("git cat-file --textconv: unable to run textconv on %s",
-			    obj_name);
-		break;
-
 	case 0:
 		if (type_from_string(exp_type) == OBJ_BLOB) {
 			unsigned char blob_sha1[20];
diff --git a/t/t8007-cat-file-textconv.sh b/t/t8007-cat-file-textconv.sh
index 78a0085..83c6636 100755
--- a/t/t8007-cat-file-textconv.sh
+++ b/t/t8007-cat-file-textconv.sh
@@ -22,11 +22,11 @@ test_expect_success 'setup ' '
 '
 
 cat >expected <<EOF
-fatal: git cat-file --textconv: unable to run textconv on :one.bin
+bin: test version 2
 EOF
 
 test_expect_success 'no filter specified' '
-	git cat-file --textconv :one.bin 2>result
+	git cat-file --textconv :one.bin >result &&
 	test_cmp expected result
 '
 
@@ -36,10 +36,6 @@ test_expect_success 'setup textconv filters' '
 	git config diff.test.cachetextconv false
 '
 
-cat >expected <<EOF
-bin: test version 2
-EOF
-
 test_expect_success 'cat-file without --textconv' '
 	git cat-file blob :one.bin >result &&
 	test_cmp expected result
@@ -73,25 +69,19 @@ test_expect_success 'cat-file --textconv on previous commit' '
 '
 
 test_expect_success SYMLINKS 'cat-file without --textconv (symlink)' '
+	printf "%s" "one.bin" >expected &&
 	git cat-file blob :symlink.bin >result &&
-	printf "%s" "one.bin" >expected
 	test_cmp expected result
 '
 
 
 test_expect_success SYMLINKS 'cat-file --textconv on index (symlink)' '
-	! git cat-file --textconv :symlink.bin 2>result &&
-	cat >expected <<\EOF &&
-fatal: git cat-file --textconv: unable to run textconv on :symlink.bin
-EOF
+	git cat-file --textconv :symlink.bin >result &&
 	test_cmp expected result
 '
 
 test_expect_success SYMLINKS 'cat-file --textconv on HEAD (symlink)' '
-	! git cat-file --textconv HEAD:symlink.bin 2>result &&
-	cat >expected <<EOF &&
-fatal: git cat-file --textconv: unable to run textconv on HEAD:symlink.bin
-EOF
+	git cat-file --textconv HEAD:symlink.bin >result &&
 	test_cmp expected result
 '
 
-- 
1.8.3.rc1.406.gf4dce7e

  parent reply	other threads:[~2013-05-10 15:11 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-19 16:44 [PATCH 0/6] grep with textconv Michael J Gruber
2013-04-19 16:44 ` [PATCH 1/6] t4030: demonstrate behavior of show " Michael J Gruber
2013-04-20  4:04   ` Jeff King
2013-04-20 13:35     ` Michael J Gruber
2013-04-19 16:44 ` [PATCH 2/6] show: obey --textconv for blobs Michael J Gruber
2013-04-20  4:06   ` Jeff King
2013-04-20 13:38     ` Michael J Gruber
2013-04-21  3:37       ` Jeff King
2013-04-22 10:29         ` Michael J Gruber
2013-04-22 15:25         ` Junio C Hamano
2013-04-22 15:29           ` Jeff King
2013-04-22 15:37             ` Jeremy Rosen
2013-04-22 15:54               ` Matthieu Moy
2013-04-23  8:58                 ` Michael J Gruber
2013-04-19 16:44 ` [PATCH 3/6] cat-file: do not die on --textconv without textconv filters Michael J Gruber
2013-04-19 18:15   ` Junio C Hamano
2013-04-20  4:17   ` Jeff King
2013-04-20 14:27     ` Michael J Gruber
2013-04-19 16:44 ` [PATCH 4/6] t7008: demonstrate behavior of grep with textconv Michael J Gruber
2013-04-19 16:44 ` [PATCH 5/6] grep: allow to use textconv filters Michael J Gruber
2013-04-20  4:31   ` Jeff King
2013-04-19 16:44 ` [PATCH 6/6] grep: obey --textconv for the case rev:path Michael J Gruber
2013-04-20  4:24   ` Jeff King
2013-04-20 14:42     ` Michael J Gruber
2013-04-21  3:41       ` Jeff King
2013-04-19 18:24 ` [PATCH 0/6] grep with textconv Junio C Hamano
2013-04-20  4:26   ` Jeff King
2013-04-20 13:32   ` Michael J Gruber
2013-04-23 12:11     ` [PATCHv2 0/7] " Michael J Gruber
2013-04-23 12:11       ` [PATCHv2 1/7] t4030: demonstrate behavior of show " Michael J Gruber
2013-04-23 15:11         ` Junio C Hamano
2013-04-23 12:11       ` [PATCHv2 2/7] show: obey --textconv for blobs Michael J Gruber
2013-04-23 15:14         ` Junio C Hamano
2013-04-24 10:09           ` Michael J Gruber
2013-04-24 17:30             ` Junio C Hamano
2013-04-23 12:11       ` [PATCHv2 3/7] cat-file: do not die on --textconv without textconv filters Michael J Gruber
2013-04-23 15:15         ` Junio C Hamano
2013-04-23 12:11       ` [PATCHv2 4/7] t7008: demonstrate behavior of grep with textconv Michael J Gruber
2013-04-23 15:16         ` Junio C Hamano
2013-04-24 10:09           ` Michael J Gruber
2013-04-24 17:29             ` Junio C Hamano
2013-04-23 12:11       ` [PATCHv2 5/7] grep: allow to use textconv filters Michael J Gruber
2013-04-23 12:11       ` [PATCHv2 6/7] grep: honor --textconv for the case rev:path Michael J Gruber
2013-04-23 12:11       ` [PATCHv2 7/7] git grep: honor textconv by default Michael J Gruber
2013-04-23 15:20         ` Junio C Hamano
2013-04-24 10:05           ` Michael J Gruber
2013-04-24 17:35             ` Junio C Hamano
2013-04-24 17:57               ` Matthieu Moy
2013-04-24 18:55                 ` Junio C Hamano
2013-04-26 11:59                   ` Michael J Gruber
2013-04-26 13:23                     ` Matthieu Moy
2013-04-29  9:04                       ` Michael J Gruber
2013-04-29 15:04                         ` Junio C Hamano
2013-05-10 15:08                           ` [PATCHv3 0/7] textconv with grep and show Michael J Gruber
2013-05-10 15:10                             ` [PATCHv3 1/7] t4030: demonstrate behavior of show with textconv Michael J Gruber
2013-05-10 15:10                             ` [PATCHv3 2/7] diff_opt: track whether flags have been set explicitly Michael J Gruber
2013-05-10 15:31                               ` Eric Sunshine
2013-05-10 15:10                             ` [PATCHv3 3/7] show: honor --textconv for blobs Michael J Gruber
2013-05-10 17:02                               ` Junio C Hamano
2013-05-10 17:34                                 ` Jeff King
2013-05-10 18:04                                   ` Junio C Hamano
2013-05-11  0:25                                     ` Jeff King
2013-05-11 19:54                                       ` Junio C Hamano
2013-05-11  8:54                                 ` Michael J Gruber
2013-05-11 10:00                                   ` Michael J Gruber
2013-05-13  5:01                                     ` Junio C Hamano
2013-05-13 11:55                                       ` Jeff King
2013-05-13 14:57                                         ` Michael J Gruber
2013-05-13 15:41                                           ` Junio C Hamano
2013-05-16  3:31                                           ` Jeff King
2013-05-11 17:36                                   ` Junio C Hamano
2013-05-12 12:13                                     ` Michael J Gruber
2013-05-10 15:10                             ` Michael J Gruber [this message]
2013-05-10 15:10                             ` [PATCHv3 5/7] t7008: demonstrate behavior of grep with textconv Michael J Gruber
2013-05-10 15:10                             ` [PATCHv3 6/7] grep: allow to use textconv filters Michael J Gruber
2013-05-10 15:10                             ` [PATCHv3 7/7] grep: honor --textconv for the case rev:path Michael J Gruber
2013-05-10 18:11                               ` Junio C Hamano
2013-05-10 18:31                                 ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b54866d8875298429f4756c9e5c268cbcbeee710.1368197380.git.git@drmicha.warpmail.net \
    --to=git@drmicha.warpmail.net \
    --cc=Matthieu.Moy@imag.fr \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).