threads / bug / 45921

bug with git add and .gitignore

Subject: bug with git add and .gitignore

## tl;dr

2 messages between May 10, 2017 and May 16, 2017.

replies: 1people: 2as markdown or json

Orgad Shaneh· May 10, 2017, 13:44 UTC · lore
Hi,

When a not-ignored file inside an ignore directory is added along with other files, a false alarm is shown:

git init echo /d/ > .gitignore mkdir d touch d/file foo git add -f d/file foo git add d/file # fine git add d/file foo # The following paths are ignored by one of your .gitignore files: # d # Use -f if you really want to add them.

I did not try to add a new file in d. It's the same file that is already indexed.

- Orgad
Samuel Lijin· May 16, 2017, 19:10 UTC · re: Orgad Shaneh · lore

Re: bug with git add and .gitignore

On Wed, May 10, 2017 at 9:44 AM, Orgad Shaneh <orgads@gmail.com> wrote:
Show 16 quoted lines
> Hi,
>
> When a not-ignored file inside an ignore directory is added along with
> other files, a false alarm is shown:
>
> git init
> echo /d/ > .gitignore
> mkdir d
> touch d/file foo
> git add -f d/file foo
> git add d/file
> # fine
> git add d/file foo
> # The following paths are ignored by one of your .gitignore files:
> # d
> # Use -f if you really want to add them.

For anyone who wants to take a shot at this, the reason this happens is because when "add d/file foo" is invoked, when add.c:cmd_add() calls fill_directory(), d/ gets added to dir->ignored, so add_files() complains. I'm not sure if that's *supposed* to happen, and the issue is somewhere else, or the call to read_directory_recursive() from fill_directory() doesn't properly respect the pathspec.

> I did not try to add a new file in d. It's the same file that is
> already indexed.
>
> - Orgad

← back to recent threads