git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG?] After 'git checkout',  files deleted upstream are left in the working directory as untracked
@ 2020-10-10 16:43 Philippe Blain
  2020-10-11  6:58 ` Johannes Sixt
  2020-10-12 11:10 ` Johannes Schindelin
  0 siblings, 2 replies; 4+ messages in thread
From: Philippe Blain @ 2020-10-10 16:43 UTC (permalink / raw)
  To: Git mailing list

Hello all,

I've noticed a weird behaviour of 'git checkout' and I don't know if it's a bug.

I went back to an old clone which had an old feature branch ('stale-branch') 
checkout out, and its working directory and index matching HEAD 
('git status' is clean).
Then I did `git checkout other-branch`, where 'other branch' is a more 
recent feature branch, based on a more recent commit on 'master'.
After the checkout, `git status` reports untracked files. These are files that were 
deleted on 'master' between the commit on which 'stale-branch' was based (d9f6f3b619)
and the commit on which 'other-branch' is based (d4a392452e).

The thing is, I can't reproduce it on a fresh clone. If I could, this would be a reproducer:

```
$ git clone git@github.com:phil-blain/git.git && cd git
$ git checkout stale-branch
$ git checkout other-branch
$ git status # the following is what is shown in my old clone
On branch other-branch
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	git-legacy-stash
	git-remote-testsvn
	t/helper/test-line-buffer
	t/helper/test-svn-fe

nothing added to commit but untracked files present (use "git add" to track)
```

I did not modify or delete any of these 4 files myself, neither in the commits 
on 'stale-branch' or in the commits on 'other-branch'. They were deleted by
other feature branches that were merged to 'master' between d9f6f3b619 and
d4a392452e.

This is not the first time that I've seen this happen, and I'd like to understand
if this is a bug, and why I can't reproduce it on a fresh clone (I'm guessing maybe
the index is at play here, but I'm not sure how to diagnose it)...

Thanks and cheers,

Philippe.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG?] After 'git checkout', files deleted upstream are left in the working directory as untracked
  2020-10-10 16:43 [BUG?] After 'git checkout', files deleted upstream are left in the working directory as untracked Philippe Blain
@ 2020-10-11  6:58 ` Johannes Sixt
  2020-10-11 16:19   ` Philippe Blain
  2020-10-12 11:10 ` Johannes Schindelin
  1 sibling, 1 reply; 4+ messages in thread
From: Johannes Sixt @ 2020-10-11  6:58 UTC (permalink / raw)
  To: Philippe Blain; +Cc: Git mailing list

Am 10.10.20 um 18:43 schrieb Philippe Blain:
> The thing is, I can't reproduce it on a fresh clone. If I could, this would be a reproducer:
> 
> ```
> $ git clone git@github.com:phil-blain/git.git && cd git
> $ git checkout stale-branch
> $ git checkout other-branch
> $ git status # the following is what is shown in my old clone
> On branch other-branch
> Untracked files:
>   (use "git add <file>..." to include in what will be committed)
> 
> 	git-legacy-stash
> 	git-remote-testsvn
> 	t/helper/test-line-buffer
> 	t/helper/test-svn-fe
> 
> nothing added to commit but untracked files present (use "git add" to track)
> ```

This is normal. These 4 files are build products and were never
committed files. They had been mentioned in .gitignore in the past, but
are not anymore.

Apparently, your old repository had these build products still lying
around. If you insert `make` in your instructions above after `git
checkout stale-branch`, you should be able to observe the same
un-cleanlyness in a new clone.

-- Hannes

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG?] After 'git checkout', files deleted upstream are left in the working directory as untracked
  2020-10-11  6:58 ` Johannes Sixt
@ 2020-10-11 16:19   ` Philippe Blain
  0 siblings, 0 replies; 4+ messages in thread
From: Philippe Blain @ 2020-10-11 16:19 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: Git mailing list

Hi Johannes, 

> Le 11 oct. 2020 à 02:58, Johannes Sixt <j6t@kdbg.org> a écrit :
> 
> Am 10.10.20 um 18:43 schrieb Philippe Blain:
>> The thing is, I can't reproduce it on a fresh clone. If I could, this would be a reproducer:
>> 
>> ```
>> $ git clone git@github.com:phil-blain/git.git && cd git
>> $ git checkout stale-branch
>> $ git checkout other-branch
>> $ git status # the following is what is shown in my old clone
>> On branch other-branch
>> Untracked files:
>>  (use "git add <file>..." to include in what will be committed)
>> 
>> 	git-legacy-stash
>> 	git-remote-testsvn
>> 	t/helper/test-line-buffer
>> 	t/helper/test-svn-fe
>> 
>> nothing added to commit but untracked files present (use "git add" to track)
>> ```
> 
> This is normal. These 4 files are build products and were never
> committed files. They had been mentioned in .gitignore in the past, but
> are not anymore.

Oops, I should've checked that. Thanks for answering!

Philippe.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG?] After 'git checkout',  files deleted upstream are left in the working directory as untracked
  2020-10-10 16:43 [BUG?] After 'git checkout', files deleted upstream are left in the working directory as untracked Philippe Blain
  2020-10-11  6:58 ` Johannes Sixt
@ 2020-10-12 11:10 ` Johannes Schindelin
  1 sibling, 0 replies; 4+ messages in thread
From: Johannes Schindelin @ 2020-10-12 11:10 UTC (permalink / raw)
  To: Philippe Blain; +Cc: Git mailing list

Hi Philippe,

On Sat, 10 Oct 2020, Philippe Blain wrote:

> $ git status # the following is what is shown in my old clone
> On branch other-branch
> Untracked files:
>   (use "git add <file>..." to include in what will be committed)
>
> 	git-legacy-stash
> 	git-remote-testsvn
> 	t/helper/test-line-buffer
> 	t/helper/test-svn-fe

These files were generated previously, but are no longer generated
(`legacy-stash` was retired in favor of the built-in `stash`,
`remote-testsvn` was dropped because it languished for long enough without
anybody picking it back up, and the test helpers were necessary to test
`test-svn`).

Since they are no longer generated, those build products are no longer
desired.

And you don't see them in a fresh clone because they were only compiled in
previous revisions.

So this works as expected.

What you will want to do is to run `git clean -dn` to see what `clean`
would remove, and once satisfied that it's all good, actually remove the
files using `git clean -df`.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-10-12 11:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-10 16:43 [BUG?] After 'git checkout', files deleted upstream are left in the working directory as untracked Philippe Blain
2020-10-11  6:58 ` Johannes Sixt
2020-10-11 16:19   ` Philippe Blain
2020-10-12 11:10 ` Johannes Schindelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).