Re: Feature Request: gitignore recursion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 07, 2013 at 05:26:17PM +0700, Nguyen Thai Ngoc Duy wrote:

> On Mon, Oct 7, 2013 at 5:23 AM, AJ <alljeep@xxxxxxxxx> wrote:
> > I'm hoping to get the following feature implemented into git.
> >
> > Add the ability to recursively include using:
> > !/my_dir/**/*
> 
> You can do that since v1.8.2. Actually the pattern should be
> 
> !/my_dir/**
> 
> Checkout gitignore man page for more information.

I think that is a reasonable approach to doing what the OP wants.

However, one thing I expected to work but didn't is:

  echo '*' >.gitignore
  echo '!*' >my_dir/.gitignore

That _does_ work for attributes, like:

  echo '* foo=one' >.gitattributes
  echo '* foo=two' >my_dir/.gitattributes

where the more-specific file takes precedence. It works because we keep
an attribute stack, and look from most-specific directory to least.

The directory traversal code, however, tries to avoid entering
directories that are ignored. So if you have told it to ignore "my_dir",
we will not even look at "my_dir/.gitignore".

This is arguably a bug, as the documentation says that more specific
paths should take precedence over toplevel ones. But the optimization of
pruning ignored paths is very important for performance; otherwise, we
would end up enumerating entire ignored subdirectories on the off chance
that they have a negative .gitignore entry buried deep inside them.

So I don't think it is worth fixing, but it might be worth mentioning in
the documentation. Or is it mentioned somewhere that I missed?

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]