git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>,
	Lars Schneider <larsxschneider@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: What's cooking in git.git (Oct 2016, #05; Thu, 20)
Date: Fri, 21 Oct 2016 15:08:21 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.20.1610211457030.3264@virtualbox> (raw)
In-Reply-To: <xmqqk2d2ein7.fsf@gitster.mtv.corp.google.com>

Hi Junio & Lars,

On Thu, 20 Oct 2016, Junio C Hamano wrote:

> * ls/filter-process (2016-10-17) 14 commits
>   (merged to 'next' on 2016-10-19 at ffd0de042c)
>  + contrib/long-running-filter: add long running filter example
>  + convert: add filter.<driver>.process option
>  + convert: prepare filter.<driver>.process option
>  + convert: make apply_filter() adhere to standard Git error handling
>  + pkt-line: add functions to read/write flush terminated packet streams
>  + pkt-line: add packet_write_gently()
>  + pkt-line: add packet_flush_gently()
>  + pkt-line: add packet_write_fmt_gently()
>  + pkt-line: extract set_packet_header()
>  + pkt-line: rename packet_write() to packet_write_fmt()
>  + run-command: add clean_on_exit_handler
>  + run-command: move check_pipe() from write_or_die to run_command
>  + convert: modernize tests
>  + convert: quote filter names in error messages
> 
>  The smudge/clean filter API expect an external process is spawned
>  to filter the contents for each path that has a filter defined.  A
>  new type of "process" filter API has been added to allow the first
>  request to run the filter for a path to spawn a single process, and
>  all filtering need is served by this single process for multiple
>  paths, reducing the process creation overhead.
> 
>  Will merge to 'master'.

This breaks in Git for Windows' SDK (I only now realized that t0060 was
not the only thing breaking in `next` for a while now):

-- snip --
not ok 15 - required process filter should filter data
#
#               test_config_global filter.protocol.process
#               "$TEST_DIRECTORY/t002
#               1/rot13-filter.pl clean smudge" &&
#               test_config_global filter.protocol.required true &&
#               rm -rf repo &&
#               mkdir repo &&
#               (
#                       cd repo &&
#                       git init &&
#
#                       echo "git-stderr.log" >.gitignore &&
#                       echo "*.r filter=protocol" >.gitattributes &&
#                       git add . &&
#                       git commit . -m "test commit 1" &&
#                       git branch empty-branch &&
#
#                       cp "$TEST_ROOT/test.o" test.r &&
#                       cp "$TEST_ROOT/test2.o" test2.r &&
#                       mkdir testsubdir &&
#                       cp "$TEST_ROOT/test3 'sq',\$x.o" "testsubdir/test3
#                       'sq',
#                       \$x.r" &&
#                       >test4-empty.r &&
#
#                       S=$(file_size test.r) &&
#                       S2=$(file_size test2.r) &&
#                       S3=$(file_size "testsubdir/test3 'sq',\$x.r") &&
#
#                       filter_git add . &&
#                       cat >expected.log <<-EOF &&
#                               START
#                               init handshake complete
#                               IN: clean test.r $S [OK] -- OUT: $S . [OK]
#                               IN: clean test2.r $S2 [OK] -- OUT: $S2 .
#                               [OK]
#                               IN: clean test4-empty.r 0 [OK] -- OUT: 0
#                               [OK]
#                               IN: clean testsubdir/test3 'sq',\$x.r $S3
#                               [OK] -
#                               - OUT: $S3 . [OK]
#                               STOP
#                       EOF
#                       test_cmp_count expected.log rot13-filter.log &&
#
#                       filter_git commit . -m "test commit 2" &&
#                       cat >expected.log <<-EOF &&
#                               START
#                               init handshake complete
#                               IN: clean test.r $S [OK] -- OUT: $S . [OK]
#                               IN: clean test2.r $S2 [OK] -- OUT: $S2 .
#                               [OK]
#                               IN: clean test4-empty.r 0 [OK] -- OUT: 0
#                               [OK]
#                               IN: clean testsubdir/test3 'sq',\$x.r $S3
#                               [OK] -
#                               - OUT: $S3 . [OK]
#                               IN: clean test.r $S [OK] -- OUT: $S . [OK]
#                               IN: clean test2.r $S2 [OK] -- OUT: $S2 .
#                               [OK]
#                               IN: clean test4-empty.r 0 [OK] -- OUT: 0
#                               [OK]
#                               IN: clean testsubdir/test3 'sq',\$x.r $S3
#                               [OK] -
#                               - OUT: $S3 . [OK]
#                               STOP
#                       EOF
#                       test_cmp_count expected.log rot13-filter.log &&
#
#                       rm -f test2.r "testsubdir/test3 'sq',\$x.r" &&
#
#                       filter_git checkout --quiet --no-progress . &&
#                       cat >expected.log <<-EOF &&
#                               START
#                               init handshake complete
#                               IN: smudge test2.r $S2 [OK] -- OUT: $S2 .
#                               [OK]
#                               IN: smudge testsubdir/test3 'sq',\$x.r $S3
#                               [OK]
#                               -- OUT: $S3 . [OK]
#                               STOP
#                       EOF
#                       test_cmp_exclude_clean expected.log
#                       rot13-filter.log &&
#
#                       filter_git checkout --quiet --no-progress
#                       empty-branch &
#                       &
#                       cat >expected.log <<-EOF &&
#                               START
#                               init handshake complete
#                               IN: clean test.r $S [OK] -- OUT: $S . [OK]
#                               STOP
#                       EOF
#                       test_cmp_exclude_clean expected.log
#                       rot13-filter.log &&
#
#                       filter_git checkout --quiet --no-progress master
#                       &&
#                       cat >expected.log <<-EOF &&
#                               START
#                               init handshake complete
#                               IN: smudge test.r $S [OK] -- OUT: $S .
#                               [OK]
#                               IN: smudge test2.r $S2 [OK] -- OUT: $S2 .
#                               [OK]
#                               IN: smudge test4-empty.r 0 [OK] -- OUT: 0
#                               [OK]
#                               IN: smudge testsubdir/test3 'sq',\$x.r $S3
#                               [OK]
#                               -- OUT: $S3 . [OK]
#                               STOP
#                       EOF
#                       test_cmp_exclude_clean expected.log
#                       rot13-filter.log &&
#
#                       test_cmp_committed_rot13 "$TEST_ROOT/test.o"
#                       test.r &&
#                       test_cmp_committed_rot13 "$TEST_ROOT/test2.o"
#                       test2.r &&
#                       test_cmp_committed_rot13 "$TEST_ROOT/test3
#                       'sq',\$x.o" "
#                       testsubdir/test3 'sq',\$x.r"
#               )
#
ok 16 - required process filter takes precedence
not ok 17 - required process filter should be used only for "clean"
operation on
ly
#
#               test_config_global filter.protocol.process
#               "$TEST_DIRECTORY/t002
#               1/rot13-filter.pl clean" &&
#               rm -rf repo &&
#               mkdir repo &&
#               (
#                       cd repo &&
#                       git init &&
#
#                       echo "*.r filter=protocol" >.gitattributes &&
#                       cp "$TEST_ROOT/test.o" test.r &&
#                       S=$(file_size test.r) &&
#
#                       filter_git add . &&
#                       cat >expected.log <<-EOF &&
#                               START
#                               init handshake complete
#                               IN: clean test.r $S [OK] -- OUT: $S . [OK]
#                               STOP
#                       EOF
#                       test_cmp_count expected.log rot13-filter.log &&
#
#                       rm test.r &&
#
#                       filter_git checkout --quiet --no-progress . &&
#                       # If the filter would be used for "smudge", too,
#                       we woul
#                       d see
#                       # "IN: smudge test.r 57 [OK] -- OUT: 57 . [OK]"
#                       here
#                       cat >expected.log <<-EOF &&
#                               START
#                               init handshake complete
#                               STOP
#                       EOF
#                       test_cmp_exclude_clean expected.log
#                       rot13-filter.log
#               )
-- snap --

Unsurprisingly, bisect identifies "convert: add filter.<driver>.process
option" as the first bad commit, although it only fails on the test case
15, but not on 17.

I am unfortunately still busy with trying to figure out what exactly makes
t6030 hang on `pu` (seems it thinks stdin is a tty and just waits for an
answer), and then trying to reduce that insane amount of time wasted on
running, and waiting for, the test suite, and for unrelated reasons I'll
have to go offline for the rest of the day, so I will most likely be
unable to assist further with this.

Sorry,
Johannes

  reply	other threads:[~2016-10-21 13:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-20 22:54 What's cooking in git.git (Oct 2016, #05; Thu, 20) Junio C Hamano
2016-10-21 13:08 ` Johannes Schindelin [this message]
2016-10-21 15:28   ` Pranit Bauva
2016-10-21 16:11   ` Lars Schneider

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=alpine.DEB.2.20.1610211457030.3264@virtualbox \
    --to=johannes.schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=larsxschneider@gmail.com \
    /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).