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

I'm using latest Git/ 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.

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to