From defe13a24a254f19596b8008095829068e742f9c Mon Sep 17 00:00:00 2001 From: Alex Riesen Date: Wed, 6 Jun 2007 16:39:05 -0700 Subject: [PATCH] Fix clone to setup the origin if its name ends with .git 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 Signed-off-by: Junio C Hamano --- git-clone.sh | 2 +- t/t5701-clone-local.sh | 46 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100755 t/t5701-clone-local.sh diff --git a/git-clone.sh b/git-clone.sh index fdd354f2d..d45618d9a 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -20,7 +20,7 @@ usage() { get_repo_base() { ( cd "`/bin/pwd`" && - cd "$1" && + cd "$1" || cd "$1.git" && { cd .git pwd diff --git a/t/t5701-clone-local.sh b/t/t5701-clone-local.sh new file mode 100755 index 000000000..b0933274d --- /dev/null +++ b/t/t5701-clone-local.sh @@ -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 -- 2.30.2