Jeff King <p...@peff.net> writes:
> On Thu, Aug 18, 2016 at 02:46:28PM +0200, Johannes Schindelin wrote:
>> With this patch, --batch can be combined with --textconv or --filters.
>> For this to work, the input needs to have the form
>> <object name><single white space><path>
>> so that the filters can be chosen appropriately.
> The object name can have spaces in it, too. E.g.:
> HEAD:path with spaces
> or even:
> :/grep for this
When I wrote my review, I didn't consider this use case.
There is no -z format in --batch, which is unfortunate. If we had
one, it would trivially make it possible to do so, and we can even
have paths with LF in them ;-). On the other hand, producing a NUL
separated input is a chore.
Perhaps a new and separate option that is similar to "--batch" but
lacks support for %(rest) and accepts _ONLY_ 40-hex as object name
is the best we can do, then?
> (as was pointed out to me when I tried to turn on %(rest) handling by
> default, long ago). How do those work with your patch?
> It looks like the extra split isn't enabled unless one of those options
> is selected. Since --filters is new, that's OK for backwards
> compatibility. But --textconv isn't. So I think:
> echo "HEAD:path with spaces" |
> git cat-file --textconv --batch
> is regressed by this patch.
> I wonder if we need an option specifically to say "the object name can
> be split". Right now it kicks in automatically if you use "%(rest)" in
> your format, but you might not care about passing along that output
> (e.g., a lot of times I am piping "rev-list" straight to cat-file, and I
> have to use a separate "cut" to throw away the pathnames).
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html