aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-06-08 21:03:04 -0700
committerJunio C Hamano <gitster@pobox.com>2007-06-08 21:03:04 -0700
commit52912cce77a929aecaa4e982757d813b8d36ba1e (patch)
treeacd41957ac52e9a11e5c2f2a3224aa78bd1e99b6
parentabc403f58452da667b261274a1091af61dfec35c (diff)
parentdefe13a24a254f19596b8008095829068e742f9c (diff)
downloadgit-52912cce77a929aecaa4e982757d813b8d36ba1e.tar.gz
git-52912cce77a929aecaa4e982757d813b8d36ba1e.tar.xz
Merge branch 'ar/clone'
* ar/clone: Fix clone to setup the origin if its name ends with .git
-rwxr-xr-xgit-clone.sh2
-rwxr-xr-xt/t5701-clone-local.sh46
2 files changed, 47 insertions, 1 deletions
diff --git a/git-clone.sh b/git-clone.sh
index 5bfd8d155..3a410624d 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