git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH 0/6] "ls-files -i" not honoring directory wide ignore
Date: Tue,  5 Jun 2012 22:45:13 -0700	[thread overview]
Message-ID: <1338961519-30970-1-git-send-email-gitster@pobox.com> (raw)

"git ls-files --exclude=t -i" does not list anything, even though it
ought to report all the paths that are tracked in the t/ directory.

This is because the command used excluded() API incorrectly. The API
is designed to be called by callers that walk the tree structure
from the top level, checking each and every level as it descends,
and stop descending into a directory that is known to be ignored,
but the caller just passed a full path of a tracked file without
checking its higher level components and asked "Is this ignored?".

This series introduces a new path_excluded() API to be used for such
callers based on the excluded() API.  Also converted to use this new
API are two other callers of the excluded(), namely "git checkout"
and "git add -n --ignore-missing", that shared the same issue.

The third patch is more or less an "Oops, the earlier one was not
ideal" fix-up patch, but as the earlier parts of the series is
already in "next", I'll leave it as-is for now.  It probably is
necessary to squash it into the earlier patches post 1.7.11 after
the "next" branch is rewound.

Junio C Hamano (6):
  ls-files -i: pay attention to exclusion of leading paths
  ls-files -i: micro-optimize path_excluded()
  path_excluded(): update API to less cache-entry centric
  builtin/add.c: use path_excluded()
  unpack-trees.c: use path_excluded() in check_ok_to_remove()
  dir.c: make excluded() file scope static

 builtin/add.c      |  6 +++++-
 builtin/ls-files.c | 23 +++++++++++++++------
 dir.c              | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 dir.h              | 18 +++++++++++++++-
 unpack-trees.c     | 11 +++++++++-
 unpack-trees.h     |  1 +
 6 files changed, 109 insertions(+), 10 deletions(-)

-- 
1.7.11.rc1.37.g09843ac

             reply	other threads:[~2012-06-06  5:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-06  5:45 Junio C Hamano [this message]
2012-06-06  5:45 ` [PATCH 1/6] ls-files -i: pay attention to exclusion of leading paths Junio C Hamano
2012-06-06  5:45 ` [PATCH 2/6] ls-files -i: micro-optimize path_excluded() Junio C Hamano
2012-06-06  5:45 ` [PATCH 3/6] path_excluded(): update API to less cache-entry centric Junio C Hamano
2012-06-06  5:45 ` [PATCH 4/6] builtin/add.c: use path_excluded() Junio C Hamano
2012-06-06  5:45 ` [PATCH 5/6] unpack-trees.c: use path_excluded() in check_ok_to_remove() Junio C Hamano
2012-06-06  5:45 ` [PATCH 6/6] dir.c: make excluded() file scope static Junio C Hamano

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1338961519-30970-1-git-send-email-gitster@pobox.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    /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.
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 NNTP newsgroup(s).