threads / bug / 35840

[BUG] git-stash confused when directory replaced with symlink

Subject: [BUG] git-stash confused when directory replaced with symlink

## tl;dr

One message between Feb 10, 2014 and Feb 10, 2014.

replies: 0people: 1as markdown or json

Vovan-VE· Feb 10, 2014, 10:54 UTC · lore
Hello!

Looks like a bug. `git stash` fails with fatal error, when whole subdirectory is replaced with a symlink.

I'm using latest Git/1.8.5.4 under Ubuntu 12.04.4 x64.
Steps to reproduce initial state:
     $ git init
     $ mkdir dir
     $ touch dir/file.txt
     $ git add dir/file.txt
     $ git commit -m 'Initial commit'
     $ rm -r dir
     $ ln -s -T /something/does/not/matter dir
     $ git status
     # Changes not staged for commit:
     #
     #	deleted:    dir/file.txt
     #
     # Untracked files:
     #
     #	dir
Now the bug itself:
     $ git stash
     error: 'dir/file.txt' is beyond a symbolic link
     fatal: Unable to process path dir/file.txt
     Cannot save the current worktree state

Target of the symlink doesn't matter, as far as I understand. Doing `git add --all` or `git rm --cached dir/file.txt` doesn't change the result - still fatal.

Git tries to delete file "dir/file.txt", which does not exist. It confused by existing "dir".

However `git checkout .` works fine: symlink deleted, directory restored.
-- 
Vovan-VE

← back to recent threads