From 062aeee8aa426468817c5bea96d781289b272ced Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 2 Aug 2013 09:29:30 -0700 Subject: Revert "cat-file: split --batch input lines on whitespace" This reverts commit c334b87b30c1464a1ab563fe1fb8de5eaf0e5bac; the update assumed that people only used the command to read from "rev-list --objects" output, whose lines begin with a 40-hex object name followed by a whitespace, but it turns out that scripts feed random extended SHA-1 expressions (e.g. "HEAD:$pathname") in which a whitespace has to be kept. diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt index 3ddec0b..10fbc6a 100644 --- a/Documentation/git-cat-file.txt +++ b/Documentation/git-cat-file.txt @@ -88,10 +88,8 @@ BATCH OUTPUT If `--batch` or `--batch-check` is given, `cat-file` will read objects from stdin, one per line, and print information about them. -Each line is split at the first whitespace boundary. All characters -before that whitespace are considered as a whole object name, and are -parsed as if given to linkgit:git-rev-parse[1]. Characters after that -whitespace can be accessed using the `%(rest)` atom (see below). +Each line is considered as a whole object name, and is parsed as if +given to linkgit:git-rev-parse[1]. You can specify the information shown for each object by using a custom ``. The `` is copied literally to stdout for each @@ -112,10 +110,6 @@ newline. The available atoms are: The size, in bytes, that the object takes up on disk. See the note about on-disk sizes in the `CAVEATS` section below. -`rest`:: - The text (if any) found after the first run of whitespace on the - input line (i.e., the "rest" of the line). - If no format is specified, the default format is `%(objectname) %(objecttype) %(objectsize)`. diff --git a/builtin/cat-file.c b/builtin/cat-file.c index 163ce6c..4253460 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -119,7 +119,6 @@ struct expand_data { enum object_type type; unsigned long size; unsigned long disk_size; - const char *rest; /* * If mark_query is true, we do not expand anything, but rather @@ -164,9 +163,6 @@ static void expand_atom(struct strbuf *sb, const char *atom, int len, data->info.disk_sizep = &data->disk_size; else strbuf_addf(sb, "%lu", data->disk_size); - } else if (is_atom("rest", atom, len)) { - if (!data->mark_query && data->rest) - strbuf_addstr(sb, data->rest); } else die("unknown format element: %.*s", len, atom); } @@ -277,21 +273,7 @@ static int batch_objects(struct batch_options *opt) warn_on_object_refname_ambiguity = 0; while (strbuf_getline(&buf, stdin, '\n') != EOF) { - char *p; - int error; - - /* - * Split at first whitespace, tying off the beginning of the - * string and saving the remainder (or NULL) in data.rest. - */ - p = strpbrk(buf.buf, " \t"); - if (p) { - while (*p && strchr(" \t", *p)) - *p++ = '\0'; - } - data.rest = p; - - error = batch_one_object(buf.buf, opt, &data); + int error = batch_one_object(buf.buf, opt, &data); if (error) return error; } diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh index d499d02..4e911fb 100755 --- a/t/t1006-cat-file.sh +++ b/t/t1006-cat-file.sh @@ -78,13 +78,6 @@ $content" echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual && test_cmp expect actual ' - - test_expect_success '--batch-check with %(rest)' ' - echo "$type this is some extra content" >expect && - echo "$sha1 this is some extra content" | - git cat-file --batch-check="%(objecttype) %(rest)" >actual && - test_cmp expect actual - ' } hello_content="Hello World" -- cgit v0.10.2-6-g49f6