ls-files: unbreak "ls-files -i"
authorJeff King <peff@peff.net>
Fri, 30 Oct 2009 19:05:52 +0000 (15:05 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 30 Oct 2009 21:41:29 +0000 (14:41 -0700)
commit500348aa6859e436a890f5f5a7e0eeea8ef6c1de
treeeaf08ee1a24aa3b3ffb36bd25d047067b5517a76
parentb5227d80aee5173bfda6aa43a890d03110b0df26
ls-files: unbreak "ls-files -i"

Commit b5227d8 changed the behavior of "ls-files" with
respect to includes, but accidentally broke the "-i" option
The original behavior was:

  1. if no "-i" is given, cull all results according to --exclude*
  2. if "-i" is given, show the inverse of (1)

The broken behavior was:

  1. if no "-i" is given:
     a. for "-o", cull results according to --exclude*
     b. for index files, always show all
  2. if "-i" is given:
     a. for "-o", shows the inverse of (1a)
     b. for index files, always show all

The fixed behavior keeps the new (1b) behavior introduced
by b5227d8, but fixes the (2b) behavior to show only ignored
files, not all files.

This patch also tweaks the documentation. The original text
was somewhat obscure in the first place, but it is also now
inaccurate (the relationship between (1b) and (2b) is not
quite a "reverse").

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-ls-files.txt
builtin-ls-files.c
t/t3003-ls-files-exclude.sh