[PATCH v2 0/5] Git filter protocol
- From
larsxschneider@gmail.com <larsxschneider@gmail.com>
- Date
- Jul 27, 2016, 00:06 UTC
- Message-ID
- <20160727000605.49982-1-larsxschneider@gmail.com>
- In-Reply-To
- <20160722154900.19477-1-larsxschneider@gmail.com>
From: Lars Schneider <larsxschneider@gmail.com>
Hi,
thanks a lot for the extensive reviews. I tried to address all mentioned concerns and summarized them below. The most prominent changes since v1 are the following: * pipe communication uses a packet format (pkt-line) based protocol * a long running filter application is defined with "filter.<driver>.process" * Git offers a number of filter capabilties that a filter can request (right now only "smudge" and "clean" - in the future maybe "cleanFromFile", "smudgeToFile", and/or "stream")
Cheers, Lars
## Torsten: * add "\n" line terminator after version in init sequence * prepare big file for EXPENSIVE tests once * set "#!/usr/bin/perl" as shebang for rot13.pl to mimic other Perl test scripts * add test_have_prereq PERL to t0021
## Ramsay: * use write_in_full(process->in, nbuf.buf, nbuf.len) to avoid unneccsary strlen call * use read_in_full to read data that exceeds MAX_IO_SIZE properly * fix test case to check for large file filtering
## Jakub: * use standard input/standard output instead of stdin/stdout * replace global variable "cmd_process_map" with a function parameter where possible * avoid "strbuf_reset" after STRBUF_INIT * align test_config_global * rename rot13.pl to rot13-filter.pl * make Perl style consistent * describe hard coded filenames in test filter header * improve docs * add filter capabilities field (enables cleanToFile, smudgeFromFile, and/or stream later) * explain that content size in bytes is encoded in ASCII * consistent line ending for die call in Perl (without "\n") * make rot13 test filter die in case of failure (instead of returning "fail")
## Eric: * flush explicitly in Perl test filter * do not initialize variables to NULL if they are set unconditionally * fix no-op stop_protocol_filter * use off_t instead of size_t * improve test filter int parsing ($filelen =~ /\A\d+\z/ or die "bad filelen: $filelen")
## Peff: * use pkt-line protocol * do not use Perl autodie
## Remi: * remove spaces after '<'
Lars Schneider (5): convert: quote filter names in error messages convert: modernize tests pkt-line: extract and use `set_packet_header` function convert: generate large test files only once convert: add filter.<driver>.process option
Documentation/gitattributes.txt | 54 +++++++- convert.c | 281 +++++++++++++++++++++++++++++++++++++--- pkt-line.c | 15 ++- pkt-line.h | 1 + t/t0021-conversion.sh | 272 ++++++++++++++++++++++++++++++++------ t/t0021/rot13-filter.pl | 146 +++++++++++++++++++++ 6 files changed, 704 insertions(+), 65 deletions(-) create mode 100755 t/t0021/rot13-filter.pl
-- 2.9.0