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. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > Documentation/git-cat-file.txt | 18 +++++++++++----- > builtin/cat-file.c | 49 +++++++++++++++++++++++++++++++++++++----- > t/t8010-cat-file-filters.sh | 10 +++++++++ > 3 files changed, 67 insertions(+), 10 deletions(-) > > diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt > index 59a3c37..1f4d954 100644 > --- a/Documentation/git-cat-file.txt > +++ b/Documentation/git-cat-file.txt > @@ -10,7 +10,7 @@ SYNOPSIS > -------- > [verse] > 'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv | --filters ) [--use-path=<path>] <object> > -'git cat-file' (--batch | --batch-check) [--follow-symlinks] > +'git cat-file' (--batch | --batch-check) [ --textconv | --filters ] [--follow-symlinks] > > DESCRIPTION > ----------- > @@ -20,7 +20,11 @@ object type, or `-s` is used to find the object size, or `--textconv` or > `--filters` is used (which imply type "blob"). > > In the second form, a list of objects (separated by linefeeds) is provided on > -stdin, and the SHA-1, type, and size of each object is printed on stdout. > +stdin, and the SHA-1, type, and size of each object is printed on stdout. The > +output format can be overridden using the optional `<format>` argument. If > +either `--textconv` or `--filters` was specified, the input is expected to > +list the object names followed by the path name, separated by a single white > +space, so that the appropriate drivers can be determined. > > OPTIONS > ------- > @@ -72,13 +76,17 @@ OPTIONS > --batch:: > --batch=<format>:: > Print object information and contents for each object provided > - on stdin. May not be combined with any other options or arguments. > - See the section `BATCH OUTPUT` below for details. > + on stdin. May not be combined with any other options or arguments > + except `--textconv` or `--filters`, in which case the input lines > + also need to specify the path, separated by white space. See the > + section `BATCH OUTPUT` below for details. > > --batch-check:: > --batch-check=<format>:: > Print object information for each object provided on stdin. May > - not be combined with any other options or arguments. See the > + not be combined with any other options or arguments except > + `--textconv` or `--filters`, in which case the input lines also > + need to specify the path, separated by white space. See the > section `BATCH OUTPUT` below for details. > > --batch-all-objects:: > diff --git a/builtin/cat-file.c b/builtin/cat-file.c > index 5ff58b3..5f91cf4 100644 > --- a/builtin/cat-file.c > +++ b/builtin/cat-file.c > @@ -17,6 +17,7 @@ struct batch_options { > int print_contents; > int buffer_output; > int all_objects; > + int cmdmode; /* may be 'w' or 'c' for --filters or --textconv */ How do I read 'w' and 'c' ? wilter and cextconv ? Does it make sense to use an enum here ? Or a #define ? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html