Bug: git add with absolute path fails if repo root dir is a symlink

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Bug: git add with absolute path fails if repo root dir is a symlink

From: Alexander Gladysh <hidden>
Date: 2016-06-15 22:50:18

Hi, list.

Yet another issue with Git symlink handling.

I can't run git add with absolute path if the repository's root
directory is a symlink.

Please see the transcript below for details.

Alexander.

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 10.10
Release:	10.10
Codename:	maverick

$ uname -a
Linux ubuntu 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC
2010 i686 GNU/Linux

$ git --version
git version 1.7.3.4

$ mkdir myrepo && cd myrepo
$ git init
$ touch alpha
$ git add alpha
$ git commit -m "initial commit"

$ cd ../
$ ln -s myrepo mysymlink
$ cd mysymlink
$ git status
$ touch beta

$ git add ~/tmp/git-test/mysymlink/beta
fatal: '/home/agladysh/tmp/git-test/mysymlink/beta' is outside repository

$ cd ../myrepo/
$ git add ~/tmp/git-test/myrepo/beta
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   beta
#

Re: Bug: git add with absolute path fails if repo root dir is a symlink

From: Alexander Gladysh <hidden>
Date: 2016-06-15 22:50:18

On Mon, Dec 27, 2010 at 09:25, Alexander Gladysh [off-list ref] wrote:
I can't run git add with absolute path if the repository's root
directory is a symlink.
Note that this issue is also triggered if *any* of the directories in
path above of my repo are symlinks.

This is a show-stopper for my current workflow.

Is there a way to quickly workaround this somehow?

Alexander.

Re: Bug: git add with absolute path fails if repo root dir is a symlink

From: Carlo Marcelo Arenas Belon <hidden>
Date: 2016-06-15 22:50:18

On Mon, Dec 27, 2010 at 10:23:12AM +0300, Alexander Gladysh wrote:
quoted
I can't run git add with absolute path if the repository's root
directory is a symlink.
Note that this issue is also triggered if *any* of the directories in
path above of my repo are symlinks.
When using absolute path names, git will compare the path given with the
git work tree and any name that is referred through a symlink in that
will trigger a mismatch.
Is there a way to quickly workaround this somehow?
use relative paths (implemented below through an alias named "myadd") :

[alias]
        myadd = "!sh -c 'cd `dirname \"$1\"` && git add `basename \"$1\"`' -"

so in your workflow you would use "myadd" instead of "add" to convert your
absolute paths (with symlinks) into relative paths

Carlo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help