git-clone: don't get fooled by $PWD
If you have /home/me/git symlink pointing at /pub/git/mine,
trying to clone from /pub/git/his/ using relative path would not
work as expected:
$ cd /home/me
$ cd git
$ ls ../
his mine
$ git clone -l -s -n ../his/stuff.git
This is because "cd ../his/stuff.git" done inside git-clone to
check if the repository is local is confused by $PWD, which is
set to /home/me, and tries to go to /home/his/stuff.git which is
different from /pub/git/his/stuff.git.
We could probably say "set -P" (or "cd -P") instead, if we know
the shell is POSIX, but the way the patch is coded is probably
more portable.
[jc: this is updated with Andy Whitcroft's improvements]
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
parent
c69f405095
commit
c2f599e09f
|
|
@ -18,7 +18,14 @@ usage() {
|
|||
}
|
||||
|
||||
get_repo_base() {
|
||||
(cd "$1" && (cd .git ; pwd)) 2> /dev/null
|
||||
(
|
||||
cd "`/bin/pwd`" &&
|
||||
cd "$1" &&
|
||||
{
|
||||
cd .git 2>/dev/null
|
||||
pwd
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if [ -n "$GIT_SSL_NO_VERIFY" ]; then
|
||||
|
|
|
|||
Loading…
Reference in New Issue