Skip to contentSkip to conversation

git-stash confused when directory replaced with symlink

BUG Vovan-VE 1 participant 1 message Jun 15, 2016

lore
Share & tools
lore

Vovan-VE

author
#0 lore raw

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.

Signature · 1 line
Vovan-VE