All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Sitaram Chamarty <sitaramc@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH 2/2] give exclude mechanism a debug option
Date: Fri, 06 Feb 2009 23:38:38 -0800	[thread overview]
Message-ID: <7vljsizog1.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20090207064454.GB14906@coredump.intra.peff.net> (Jeff King's message of "Sat, 7 Feb 2009 01:44:55 -0500")

Jeff King <peff@peff.net> writes:

> Users can set GIT_DEBUG_IGNORE in the environment to get the
> exclusion mechanism to dump to stderr files mentioned in
> .gitignore along with the pattern that matched. The output
> looks something like:
>
>   foo.c: exclude: *.c
>
> This implementation has several shortcomings that make it
> unsuitable for inclusion:
>
>   1. Doing it as a debug environment variable is hack-ish.
>      A nicer interface would be a .gitignore equivalent of
>      "git check-attr".

Correct.

>   2. If you ask for "foo/bar", and "foo/" is ignored, the
>      output will show only "foo: exclude: foo". This is an
>      artifact of the calling interface: you don't ask "is
>      foo/bar excluded", but rather while recursing through
>      "foo/" you ask "should I bother even recursing into
>      foo?". So the exclusion code never even knows that you
>      might have cared about foo/bar in the first place.

I do not see why it is a problem.  It exactly is what you want to know,
isn't it?

>   3. There is no indication of where patterns came from. We
>      could specify whether it came from the command-line,
>      from per-directory files, or from another file. But what
>      is most interesting is the actual _filename_ that it
>      came from. I.e., something like:
>
>        sub/foo.c: exclude: sub/.gitignore: *.c
>
>      But that information seems to have been forgotten by
>      the time we are actually doing excludes.

For this, you would need to add an element to exclude_stack structure to
record the human readable name of the exclude source in prep_exclude().
Once you find the matched element using your new excluded_1() mechanism
introduced by patch 1/2, you can find which stack in dir->exclude_stack
the match element belongs to, and map it back the human readable source
name recorded in the exclude_stack.
.

  reply	other threads:[~2009-02-07  7:41 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-06  9:38 How to find out which gitignore blocks my git-add Gonzo
2009-02-06 19:33 ` Jeff King
2009-02-07  1:33   ` Sitaram Chamarty
2009-02-07  6:42     ` Jeff King
2009-02-07  6:44       ` [PATCH 1/2] refactor exclude handling Jeff King
2009-02-07  6:44       ` [PATCH 2/2] give exclude mechanism a debug option Jeff King
2009-02-07  7:38         ` Junio C Hamano [this message]
2009-02-07  7:42           ` Junio C Hamano
2009-02-07 11:46             ` Jeff King
2009-02-07 11:44           ` Jeff King
2009-02-07 21:45             ` Junio C Hamano
2009-02-08  8:59               ` Jeff King
2009-02-08  9:50                 ` Junio C Hamano
2009-02-08  9:52                   ` Jeff King
2009-02-07 12:44       ` How to find out which gitignore blocks my git-add Sitaram Chamarty
2009-02-07 13:31         ` Jeff King
2009-02-06 22:00 ` Bisani, Alok

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=7vljsizog1.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=sitaramc@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.