Discrepancy between git-check-ignore and git-status for negated pattern

From: Guido Flohr <hidden>
Date: 2017-10-26 18:49:30

This .gitignore file does not work as expected with git-check-ignore:

    *.o
    !a.o

It seems that “git check-ignore a.o” ignores that “a.o” was re-included.  This is what happens:

    $ git --version
    git version 2.15.0.rc2.48.g4e40fb302
    $ mkdir repo
    $ cd repo
    $ git init
    Initialized empty Git repository in /path/to/repo/.git/
    $ echo '*.o' >.gitignore
    $ echo '!a.o' >>.gitignore
    $ >a.o
    $ >b.o
    $ git check-ignore a.o b.o
    a.o
    b.o
    $ git status --short
    ?? a.o

According to git-check-ignore, “a.o” is ignored.  According to git-status, it is not.

Is that a bug or did I miss something because of my limited search capabilities?

Tested on a Mac with current master from git.  The 2.13.4 binary from Mac Ports exhibits the same behavior. 

Thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help