Skip to content

Commit

Permalink
Fix clone to setup the origin if its name ends with .git
Browse files Browse the repository at this point in the history
The problem is visible when cloning a local repo. The cloned
repository will have the origin url setup incorrectly: the origin name
will be copied verbatim in origin url of the cloned repository.
Normally, the name is to be expanded into absolute path.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Alex Riesen authored and Junio C Hamano committed Jun 6, 2007
1 parent 23fcdc7 commit defe13a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
2 changes: 1 addition & 1 deletion git-clone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ usage() {
get_repo_base() {
(
cd "`/bin/pwd`" &&
cd "$1" &&
cd "$1" || cd "$1.git" &&
{
cd .git
pwd
Expand Down
46 changes: 46 additions & 0 deletions t/t5701-clone-local.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/sh

test_description='test local clone'
. ./test-lib.sh

D=`pwd`

test_expect_success 'preparing origin repository' '
: >file && git add . && git commit -m1 &&
git clone --bare . a.git &&
git clone --bare . x
'

test_expect_success 'local clone without .git suffix' '
cd "$D" &&
git clone -l -s a b &&
cd b &&
git fetch
'

test_expect_success 'local clone with .git suffix' '
cd "$D" &&
git clone -l -s a.git c &&
cd c &&
git fetch
'

test_expect_success 'local clone from x' '
cd "$D" &&
git clone -l -s x y &&
cd y &&
git fetch
'

test_expect_success 'local clone from x.git that does not exist' '
cd "$D" &&
if git clone -l -s x.git z
then
echo "Oops, should have failed"
false
else
echo happy
fi
'

test_done

0 comments on commit defe13a

Please sign in to comment.