Re: the opposite of .gitignore, whitelist

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

 



On Fri, Oct 26, 2018 at 01:34:53PM +0000, Jason Cooper wrote:
> On Fri, Oct 26, 2018 at 02:39:26PM +0200, Ævar Arnfjörð Bjarmason wrote:
...
> >     I thought this was a bug:
> > 
> >         (
> >             rm -rf /tmp/git &&
> >             git init /tmp/git &&
> >             cd /tmp/git >/dev/null &&
> >             echo '*' >.gitignore &&
> >             echo '!*.txt' >>.gitignore &&
> >             echo '!.gitignore' >>.gitignore &&
> >             touch foo.png foo.txt &&
> >             mkdir dir &&
> >             touch dir/bar.png dir/bar.txt &&
> >             git add *.txt &&
> >             git add */*.txt;
> >             git status --short
> >         )
> > 
> >     But it's a limitation, gitignore(5) says:
> > 
> >         It is not possible to re-include a file if a parent directory of
> >         that file is excluded. Git doesn’t list excluded directories for
> >         performance reasons, so any patterns on contained files have no
> >         effect, no matter where they are defined.
> 
> Bingo.  This is the exact problem I encountered.

(
    rm -rf /tmp/git &&
    git init /tmp/git &&
    cd /tmp/git >/dev/null &&
    echo '*' >.gitignore &&
    echo '!dir/' >>.gitignore &&
    echo '!*.txt' >>.gitignore &&
    echo '!.gitignore' >>.gitignore &&
    touch foo.png foo.txt &&
    mkdir dir &&
    echo '*' >dir/.gitignore &&
    echo '!*.txt' >>dir/.gitignore &&
    echo '!.gitignore' >>dir/.gitignore &&
    touch dir/bar.png dir/bar.txt &&
    git add *.txt &&
    git add */*.txt;
    git status --short
)

Well, this wfm...

Ugly, but doable.

thx,

Jason.



[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]

  Powered by Linux