threads / bug / 40720

Bug: stash save -u removes (some) ignored files

Subject: Bug: stash save -u removes (some) ignored files

## tl;dr

3 messages between Nov 3, 2015 and Nov 4, 2015.

replies: 2people: 2as markdown or json

Felipe Sateler· Nov 3, 2015, 22:37 UTC · lore
I have seen the following problem:

felipe@felipe:testgit% cat .gitignore **/notrack/* !**/notrack/track/ notrackfile**

felipe@felipe:testgit% find * newfile notrack notrack/1 notrackfile1

felipe@felipe:testgit% git status --porcelain ?? newfile

felipe@felipe:testgit% git stash save -u Saved working directory and index state WIP on master: 523cb39 Initial commit HEAD is now at 523cb39 Initial commit

felipe@felipe:testgit% find * notrackfile1

So, after a stash save, git decided to keep the untracked file in the current directory, but not the ones inside the untracked directory. However, the files were "correctly" ignored and did not appear on the stash:

felipe@felipe:testgit% git stash pop
Already up-to-date!
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        newfile

nothing added to commit but untracked files present (use "git add" to track) Dropped refs/stash@{0} (e6508f345af1dd207557ad0291e7e3bce8a89b1e)

felipe@felipe:testgit% find * newfile notrackfile1

I think the correct behaviour should be to left the ignored files untouched in both scenarios.

This is with git 2.6.1 (from debian).

I note that if I add a file inside the notrack/track directory, it is correctly kept, but the files in notrack/ are still deleted.

-- 
Saludos,
Felipe Sateler
Atousa Duprat· Nov 4, 2015, 06:23 UTC · re: Felipe Sateler · lore

Re: Bug: stash save -u removes (some) ignored files

> felipe@felipe:testgit% git stash save -u

This does the following: $ GIT_TRACE=1 git stash save -u [...] 21:59:10.606094 git.c:348 trace: built-in: git 'clean' '--force' '--quiet' '-d'

git-clean -d removes untracked directories in addition to untracked files. Should 'git stash save -u' issue a 'git clean -d' or simply a 'git clean'?

Atousa
On Tue, Nov 3, 2015 at 2:37 PM, Felipe Sateler <fsateler@debian.org> wrote:
Show 58 quoted lines
> I have seen the following problem:
>
> felipe@felipe:testgit% cat .gitignore
> **/notrack/*
> !**/notrack/track/
> notrackfile**
>
> felipe@felipe:testgit% find *
> newfile
> notrack
> notrack/1
> notrackfile1
>
> felipe@felipe:testgit% git status --porcelain
> ?? newfile
>
> felipe@felipe:testgit% git stash save -u
> Saved working directory and index state WIP on master: 523cb39 Initial commit
> HEAD is now at 523cb39 Initial commit
>
> felipe@felipe:testgit% find *
> notrackfile1
>
> So, after a stash save, git decided to keep the untracked file in the
> current directory, but not the ones inside the untracked directory.
> However, the files were "correctly" ignored and did not appear on the stash:
>
> felipe@felipe:testgit% git stash pop
> Already up-to-date!
> On branch master
> Untracked files:
>   (use "git add <file>..." to include in what will be committed)
>
>         newfile
>
> nothing added to commit but untracked files present (use "git add" to track)
> Dropped refs/stash@{0} (e6508f345af1dd207557ad0291e7e3bce8a89b1e)
>
> felipe@felipe:testgit% find *
> newfile
> notrackfile1
>
> I think the correct behaviour should be to left the ignored files
> untouched in both scenarios.
>
> This is with git 2.6.1 (from debian).
>
> I note that if I add a file inside the notrack/track directory, it is
> correctly kept, but the files in notrack/ are still deleted.
>
> --
>
> Saludos,
> Felipe Sateler
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-- 
Atousa Pahlevan, PhD
M.Math. University of Waterloo, Canada
Ph.D. Department of Computer Science, University of Victoria, Canada
Voice: 415-341-6206
Email: apahlevan@ieee.org
Website: www.apahlevan.org
Felipe Sateler· Nov 4, 2015, 12:27 UTC · re: Atousa Duprat · lore

Re: Bug: stash save -u removes (some) ignored files

On 4 November 2015 at 03:23, Atousa Duprat <atousa.p@gmail.com> wrote:
Show 10 quoted lines
>> felipe@felipe:testgit% git stash save -u
>
> This does the following:
> $ GIT_TRACE=1 git stash save -u
> [...]
> 21:59:10.606094 git.c:348               trace: built-in: git 'clean'
> '--force' '--quiet' '-d'
>
> git-clean -d removes untracked directories in addition to untracked files.
> Should 'git stash save -u' issue a 'git clean -d' or simply a 'git clean'?

It appears to be intentionally done[1]. Maybe the problem is that git-clean -d should not remove untracked directories that contain ignored files?

[1] http://article.gmane.org/gmane.comp.version-control.git/180214
-- 
Saludos,
Felipe Sateler

← back to recent threads