Re: Checkout deleted semi-untracked file

2018-11-06 Thread Ævar Arnfjörð Bjarmason


On Tue, Nov 06 2018, Steffen Jost wrote:

> Hello!
>
> A brief discussion on the git user mailing list on Google Groups recommended 
> me to file the following as a bug report.
>
> The problem led to an actual file loss, but I suspect that this might be 
> intended:
>
> 1) .gitignore is added to the repository (which then causes problems)
> 2) A file is added, repeatedly edited and comitted to a remote repository.
> 3) Later on, the file is added to .gitignore and "git rm --cached file" is 
> executed (since the file now contains information private to each developer).
> 4) Several commits happen.
> 5) I checkout an old branch which has not yet seen the change in .gitignore 
> in the master branch. The file is reverted to the state of the branch.
> 6) I checkout master, and the file with all later changes is irrevocably lost.
>
> I usually advise my students to check-in their .gitignore file into the 
> repository. Apparently this is a bad advice, since it now led to a somewhat 
> painful file loss for me.
>
> So what is the actual advice on this? Google turned up mixed advice there, 
> and the git user mailing list on Google Groups recommended me submitting this 
> as a bug here. However, I think this works as intended. However, I don't know 
> either how to avert this problem, apart from not checking in the .gitignore 
> file (or checking it in under a different name and copying it manually).

This recent thread should be a good starting point:
https://public-inbox.org/git/4c6a1c5b.4030...@workspacewhiz.com/

My reply here I think has an overview of some of the caveats:
https://public-inbox.org/git/871s8qdzph@evledraar.gmail.com/

tl;dr: Git assumes that a pattern in .gitignore means you don't care
about the contents, since it's meant for *.o and the like. This leads to
data loss in some situations (such as yours).

Various suggestions in that thread of ways forward, but none have
been implemented>


Checkout deleted semi-untracked file

2018-11-06 Thread Steffen Jost

Hello!

A brief discussion on the git user mailing list on Google Groups recommended me 
to file the following as a bug report.

The problem led to an actual file loss, but I suspect that this might be 
intended:

1) .gitignore is added to the repository (which then causes problems)
2) A file is added, repeatedly edited and comitted to a remote repository.
3) Later on, the file is added to .gitignore and "git rm --cached file" is 
executed (since the file now contains information private to each developer).
4) Several commits happen.
5) I checkout an old branch which has not yet seen the change in .gitignore in 
the master branch. The file is reverted to the state of the branch.
6) I checkout master, and the file with all later changes is irrevocably lost.

I usually advise my students to check-in their .gitignore file into the 
repository. Apparently this is a bad advice, since it now led to a somewhat 
painful file loss for me.

So what is the actual advice on this? Google turned up mixed advice there, and 
the git user mailing list on Google Groups recommended me submitting this as a 
bug here. However, I think this works as intended. However, I don't know either 
how to avert this problem, apart from not checking in the .gitignore file (or 
checking it in under a different name and copying it manually).


Thanks for any advice,
 Steffen Jost.

--
+49-89-2180-9139
http://www.tcs.ifi.lmu.de/~jost/

Lehr- und Forschungseinheit für Theoretische Informatik
Ludwig-Maximilians-Universität München
Oettingenstr. 67 (E111)
80538 München
BAVARIA