git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Regression in `git add' in 1.7's 48ffef966c with a wildcard in .gitignore

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Mar 8, 2010, 17:08 UTC
Message-ID
<51dd1af81003080908i3bc94f27lc99e146bb57993ba@mail.gmail.com>

I've discovered a regression in git-add the 1.7 release which I can't see reported anywhere. It was introduced in 48ffef966c762578eb818c0c54a7e11dd054f5db by Junio C Hamano at Fri Jan 8 23:05:41 2010.

The problem is that when you have a .gitignore file with * in it git-add will only complain that you're trying to add ignored files if they're in the top level of your repository, for files in subdirectories it now just silently fails:

    $ mkdir test && cd test && git init
    $ echo "*" > .gitignore
    $ mkdir directory && touch foo directory/foo
So far so good, now if I try to add 'foo' I get an error from both 1.6 and 1.7:
    $ git add foo
    The following paths are ignored by one of your .gitignore files:
    foo
But 1.7 just silently fails to add directory/foo to the index:
    $ git add directory/foo
    $ echo $?
    0
1.6 however does the right thing:
    $ git add directory/foo
    The following paths are ignored by one of your .gitignore files:
    directory/foo
    $ echo $?
    128

A test script / bisect script I used is available at git://github.com/avar/git-add-fail.git I couldn't figure out how to turn it into a Git test.

Next: Michael J Gruber
Message 1 of 4 in “Regression in `git add' in 1.7's 48ffef966c with a wildcard in .gitignore”
  1. Ævar Arnfjörð BjarmasonMar 8, 2010
  2. Michael J GruberMar 8, 2010
  3. Ævar Arnfjörð BjarmasonMar 8, 2010
  4. Junio C HamanoMar 8, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.