Re: git-sh-setup.sh:cd_to_toplevel problematic with symlinks

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

Re: git-sh-setup.sh:cd_to_toplevel problematic with symlinks

From: Matthias Lederhofer <hidden>
Date: 2016-06-15 22:43:28

Your mail did not make it to the list, therefore I quote the full
mail.

Uwe Kleine-König [off-list ref] wrote:
Matthias Lederhofer wrote:
quoted
cd_to_toplevel takes the output of git rev-parse --show-cdup and feeds
it to cd.  The problem is that cd uses PWD to do what the user means
when saying cd .., i.e. it goes to /foo when in /foo/bar even though
/foo/bar might be a symlink.  Example:

    (in an existing git repository)
    /tmp/foo$ mkdir -p a/b
    /tmp/foo$ ln -s a/b c
    /tmp/foo$ cd c
    /tmp/foo/c$ git fetch . master:master
    git-fetch: line 108: /FETCH_HEAD: Permission denied

Is there any way to tell cd to ignore $PWD?
cd -P ... does the trick.  IIRC it's in SUSv3, but once more, Solaris
/bin/sh doesn't know about that option:

	login@~ > uname -a
	SunOS login 5.10 Generic_125100-10 sun4u sparc

	login@~ > /bin/sh

	$ mkdir /tmp/foo; cd /tmp/foo

	$ git init
	Initialized empty Git repository in .git/

	$ mkdir -p a/b; ln -s a/b c; cd c

	$ git rev-parse --show-cdup
	../../

	$ cd -P ../../
	-P: does not exist
Do we care about that shell?  There was another thread about shell
script cleanup where the default sun /bin/sh doesn't support some
other features from the git shell scripts too.

Re: git-sh-setup.sh:cd_to_toplevel problematic with symlinks

From: Uwe Kleine-König <hidden>
Date: 2016-06-15 22:43:28

Hello Matthias,

Matthias Lederhofer wrote:
Your mail did not make it to the list, therefore I quote the full
mail.
Ops, thanks.
Uwe Kleine-König [off-list ref] wrote:
quoted
quoted
Is there any way to tell cd to ignore $PWD?
cd -P ... does the trick.  IIRC it's in SUSv3, but once more, Solaris
/bin/sh doesn't know about that option:
[...]
Do we care about that shell?  There was another thread about shell
script cleanup where the default sun /bin/sh doesn't support some
other features from the git shell scripts too.
Ah, I see, Makefile defines SHELL_PATH for SunOS to /bin/bash anyhow.

OK, then maybe just use it and if it breaks for someone we will notice
it ...

Best regards
Uwe

-- 
Uwe Kleine-König

http://www.google.com/search?q=12+mol+in+dozen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help