Skip to content

Commit

Permalink
git-clone: don't get fooled by $PWD
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Junio C Hamano committed May 10, 2007
1 parent c69f405 commit c2f599e
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion git-clone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit c2f599e

Please sign in to comment.