From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
Joey Hess <joeyh@debian.org>,
git@vger.kernel.org
Subject: Re: [regression] Re: git-cat-file --batch reversion; cannot query filenames with spaces
Date: Fri, 02 Aug 2013 09:32:52 -0700 [thread overview]
Message-ID: <7vy58koxxn.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <20130802105402.GA25697@sigill.intra.peff.net> (Jeff King's message of "Fri, 2 Aug 2013 03:54:02 -0700")
Jeff King <peff@peff.net> writes:
> We need to revert that commit before the release. It can either be
> replaced with:
>
> 1. A "--split" (or similar) option to use the behavior only when
> desired.
>
> 2. Enabling splitting only when %(rest) is used in the output format.
>
> And I suppose it is too late in the cycle for either of those to go into
> v1.8.4. That's a shame, but I think losing that particular patch does
> not affect the rest of the series, so we are OK to ship without it.
>
> Thanks Joey for a timely bug report.
Thanks. Will do this to jk/cat-file-batch-optim topic and merge it
to 'master' for now.
-- >8 --
Subject: [PATCH] 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.
---
Documentation/git-cat-file.txt | 10 ++--------
builtin/cat-file.c | 20 +-------------------
t/t1006-cat-file.sh | 7 -------
3 files changed, 3 insertions(+), 34 deletions(-)
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
`<format>`. The `<format>` 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"
--
1.8.4-rc1-125-g7a0ec02
prev parent reply other threads:[~2013-08-02 16:33 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20130801201842.GA16809@kitenet.net>
2013-08-02 6:40 ` [regression] Re: git-cat-file --batch reversion; cannot query filenames with spaces Jonathan Nieder
2013-08-02 10:54 ` Jeff King
2013-08-02 11:59 ` Jeff King
2013-08-02 15:27 ` Joey Hess
2013-08-02 16:14 ` Brandon Casey
2013-08-02 16:41 ` Junio C Hamano
2013-08-02 17:28 ` Jeff King
2013-08-02 18:30 ` Junio C Hamano
2013-08-02 20:05 ` Jonathan Nieder
2013-08-03 7:18 ` Jeff King
2013-08-02 16:32 ` Junio C Hamano [this message]
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vy58koxxn.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=joeyh@debian.org \
--cc=jrnieder@gmail.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).