stash: restore untracked files AFTER restoring tracked files
commitbee8691f197ae6b74ca26081c1a3fa218e2b9db7
authorElijah Newren <newren@gmail.com>
Fri, 10 Sep 2021 10:29:56 +0000 (10 10:29 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 10 Sep 2021 22:46:34 +0000 (10 15:46 -0700)
treef486e82d5bdbe825cdc62929289d76a682ca4024
parent3d40e3723b1bc86d22136ff01b0787809a3267a4
stash: restore untracked files AFTER restoring tracked files

If a user deletes a file and places a directory of untracked files
there, then stashes all these changes, the untracked directory of files
cannot be restored until after the corresponding file in the way is
removed.  So, restore changes to tracked files before restoring
untracked files.

There is no counterpart problem to worry about with the user deleting an
untracked file and then add a tracked one in its place.  Git does not
track untracked files, and so will not know the untracked file was
deleted, and thus won't be able to stash the removal of that file.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/stash.c
t/t3903-stash.sh