threads / discuss / 55450

No error when overwriting ignored files

Subject: No error when overwriting ignored files

## tl;dr

4 messages between Apr 7, 2021 and Apr 7, 2021.

replies: 3people: 4as markdown or json

Horst von Brand· Apr 7, 2021, 19:56 UTC · lore
When pulling from a repository that tracks a file listed in `.gitignore` that would overwrite a local file, this is not reported.
For example, in the attached repositories, when doing `git pull tst1` in `tst2`, it is (correctly) reported that `ignored.not` would be overwritten, while `ignored.txt` is not reported. 
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile 2340000       Fax:  +56 32 2797513
Jeff King· Apr 7, 2021, 20:18 UTC · re: Horst von Brand · lore

Re: No error when overwriting ignored files

On Wed, Apr 07, 2021 at 03:56:38PM -0400, Horst von Brand wrote:
Show 6 quoted lines
> When pulling from a repository that tracks a file listed in
> `.gitignore` that would overwrite a local file, this is not reported.
> 
> For example, in the attached repositories, when doing `git pull tst1`
> in `tst2`, it is (correctly) reported that `ignored.not` would be
> overwritten, while `ignored.txt` is not reported.

This is behaving as intended. Ignored files are not considered "precious". You can find more discussion by searching for that term in the list archive.

There is no concept of "ignored but precious" in Git. However, here's an old patch series that tries to move in that direction (using an attribute):

  https://lore.kernel.org/git/20190216114938.18843-1-pclouds@gmail.com/
AFAIK nobody is actively working on it right now.
-Peff
Ævar Arnfjörð Bjarmason· Apr 7, 2021, 22:17 UTC · re: Jeff King · lore

Re: No error when overwriting ignored files

On Wed, Apr 07 2021, Jeff King wrote:
Show 20 quoted lines
> On Wed, Apr 07, 2021 at 03:56:38PM -0400, Horst von Brand wrote:
>
>> When pulling from a repository that tracks a file listed in
>> `.gitignore` that would overwrite a local file, this is not reported.
>> 
>> For example, in the attached repositories, when doing `git pull tst1`
>> in `tst2`, it is (correctly) reported that `ignored.not` would be
>> overwritten, while `ignored.txt` is not reported.
>
> This is behaving as intended. Ignored files are not considered
> "precious". You can find more discussion by searching for that term in
> the list archive.
>
> There is no concept of "ignored but precious" in Git. However, here's an
> old patch series that tries to move in that direction (using an
> attribute):
>
>   https://lore.kernel.org/git/20190216114938.18843-1-pclouds@gmail.com/
>
> AFAIK nobody is actively working on it right now.

Having re-read that thread now I still think by far the most useful way forward with this for anyone who's interested is to investigate/add missing tests for our current behavior, why/when it got introduced, whether anyone wanted it or if it was emergent etc. See [1] for a summary.

That's quite a bit of work, but is work that someone with little/no previous familiarity with git's development should be able to do with enough time & motivation....

1. https://lore.kernel.org/git/87ftsi68ke.fsf@evledraar.gmail.com/
Junio C Hamano· Apr 7, 2021, 20:47 UTC · re: Horst von Brand · lore

Re: No error when overwriting ignored files

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> When pulling from a repository that tracks a file listed in
> `.gitignore` that would overwrite a local file, this is not
> reported.

Git has the notion of "not to be tracked (i.e. added to the index or committed) and expendable files", and they are called "ignored" files. And ".gitignore" and .git/info/exclude mechanism is used to mark these paths.

There is no notion of "not to be tracked but precious files" or mechanism to mark paths as such. So the behaviour you observed is fully expected and working as designed.

Thanks.

← back to recent threads