check-ignore: allow incremental streaming of queries via --stdin
commit0c8e8c080b08632d6dbee33d093b5df648196b49
authorAdam Spiers <git@adamspiers.org>
Thu, 11 Apr 2013 12:05:12 +0000 (11 13:05 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 Apr 2013 18:01:59 +0000 (11 11:01 -0700)
treededeba2b537d31c760c9eb28e6071c4b70870f8b
parent0006d85c3a2fcbd803ed46cf283fab4e4fae3a7f
check-ignore: allow incremental streaming of queries via --stdin

Some callers, such as the git-annex web assistant, find it useful to
invoke git check-ignore as a persistent background process, which can
then have queries fed to its STDIN at any point, and the corresponding
response consumed from its STDOUT.  For this we need to invoke
check_ignore() once per line of standard input, and flush standard
output after each result.

The above use case suggests that empty STDIN is actually a reasonable
scenario (e.g. when the caller doesn't know in advance whether any
queries need to be fed to the background process until after it's
already started), so we make the minor behavioural change that "no
pathspec given." is no longer emitted in when STDIN is empty.

Even though check_ignore() could now be changed to operate on a single
pathspec, we keep it operating on an array of pathspecs since that is
a more convenient way of consuming the existing pathspec API.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/check-ignore.c
t/t0008-ignores.sh