# Ignore pattern with trailing whitespace in .gitignore is void using git 1.8.1.5

3 messages from 2013-03-09 to 2013-03-09. Participants: Thor Andreas Rognan, Junio C Hamano.
Thread: https://gitlist.dev/t/33111

## Thor Andreas Rognan, 2013-03-09 01:36

Subject: Ignore pattern with trailing whitespace in .gitignore is void using git 1.8.1.5
Message-ID: <CAMn8hCexsiizsjoXO-ebfpEtZcW7n0dY-jV0q+aLh8U+pbUo9A@mail.gmail.com>
URL: https://gitlist.dev/e/CAMn8hCexsiizsjoXO-ebfpEtZcW7n0dY-jV0q%2BaLh8U%2BpbUo9A%40mail.gmail.com
In-Reply-To: <CAMn8hCd6_V2Kq_OUgBFAoOkqqmrTpN_ohcP3wM44qWvQB_8R5g@mail.gmail.com>

```
Hi guys,

Maybe I'm doing it wrong, or maybe it's the intended behaviour,
but I find that a trailing whitespace after a pattern in .gitignore
makes the pattern void with git 1.8.1.5.

It's a subtle error to make, although cleaning undesired commits
from the git history can be educational and fun in itself.

How to reproduce:

$ > mkdir -p ~/tmp/git-ignore-test/ \
&& cd ~/tmp/git-ignore-test/ \
&& touch .gitignore .secret-passwords .secret-passwords.swp \
&& echo ".*.sw? " > .gitignore \
&& echo ".secret-passwords" >> .gitignore \
&& git init && git status

Remove the white space after ˋˋˋ .*.sw?ˋˋˋ in .gitignore
to see the .swp file disappear:

$ > echo -e ".*.sw?\n.secret-passwords" > .gitignore > .gitignore \
&& git status

You will of course have to temporarily disable your
global .gitignore file if you handle vim swap files correctly there.

I am using git 1.8.1.5 installed with homebrew on os x 10.8.2.

```

## Junio C Hamano, 2013-03-09 05:25

Subject: Re: Ignore pattern with trailing whitespace in .gitignore is void using git 1.8.1.5
Message-ID: <7vehfpf8kk.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vehfpf8kk.fsf%40alter.siamese.dyndns.org
In-Reply-To: <CAMn8hCexsiizsjoXO-ebfpEtZcW7n0dY-jV0q+aLh8U+pbUo9A@mail.gmail.com>

```
Thor Andreas Rognan <thor.rognan@gmail.com> writes:

> Maybe I'm doing it wrong, or maybe it's the intended behaviour,
> but I find that a trailing whitespace after a pattern in .gitignore
> makes the pattern void with git 1.8.1.5.

I doubt we do anything clever like that.

        $ git init
        $ touch hello.o "hello.o " "hello.o  " hello.c
        $ echo "*.o " >.gitignore
        $ git status | cat -e
        # On branch master$
        #$
        # Initial commit$
        #$
        # Untracked files:$
        #   (use "git add <file>..." to include in what will be committed)$
        #$
        #       .gitignore$
        #       hello.c$
        #       hello.o$
        #       hello.o  $
        nothing added to commit but untracked files present (use "git add" to track)$
        
The user tells to ignore anything followed by a dot followed by a
lowercase Oh followed by a SP.  We ignore "hello. ", but not "hello.o"
nor "hello.o  " (two SPs at the end), just as told.

```

## Junio C Hamano, 2013-03-09 06:28

Subject: Re: Ignore pattern with trailing whitespace in .gitignore is void using git 1.8.1.5
Message-ID: <7va9qdf5o9.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7va9qdf5o9.fsf%40alter.siamese.dyndns.org
In-Reply-To: <7vehfpf8kk.fsf@alter.siamese.dyndns.org>

```
Junio C Hamano <gitster@pobox.com> writes:

> Thor Andreas Rognan <thor.rognan@gmail.com> writes:
>
>> Maybe I'm doing it wrong, or maybe it's the intended behaviour,
>> but I find that a trailing whitespace after a pattern in .gitignore
>> makes the pattern void with git 1.8.1.5.
>
> I doubt we do anything clever like that.
> ...
> The user tells to ignore anything followed by a dot followed by a
> lowercase Oh followed by a SP.  We ignore "hello. ", but not "hello.o"
> nor "hello.o  " (two SPs at the end), just as told.

Of course, having said all that, I do not think anybody objects too
deeply against a patch that change the behaviour to ignore trailing
whitespaces, as long as the patch leaves an escape hatch to allow
people who do want to specify a pattern that matches with pathnames
with trailing whitespaces.  Without thinking it through, perhaps

	echo '*.o\ ' >.gitignore

or something?

Technically speaking, such a change is a regression, but I doubt
that many people would mind it too much.

```
