Code

Merge branch 'maint'
[git.git] / t / t5700-clone-reference.sh
index 58a97f1ed1649b38aa06f7ea307f2907d10dfb16..1c109160690d273451f7a089be42e45f36a3b5bb 100755 (executable)
@@ -52,13 +52,13 @@ diff expected current'
 
 cd "$base_dir"
 
-rm -f $U
+rm -f "$U"
 
 test_expect_success 'cloning with reference (no -l -s)' \
-'GIT_DEBUG_SEND_PACK=3 git clone --reference B file://`pwd`/A D 3>$U'
+'GIT_DEBUG_SEND_PACK=3 git clone --reference B "file://$(pwd)/A" D 3>"$U"'
 
 test_expect_success 'fetched no objects' \
-'! grep "^want" $U'
+'! grep "^want" "$U"'
 
 cd "$base_dir"
 
@@ -120,4 +120,30 @@ diff expected current'
 
 cd "$base_dir"
 
+test_expect_success 'preparing alternate repository #1' \
+'test_create_repo F && cd F &&
+echo first > file1 &&
+git add file1 &&
+git commit -m initial'
+
+cd "$base_dir"
+
+test_expect_success 'cloning alternate repo #2 and adding changes to repo #1' \
+'git clone F G && cd F &&
+echo second > file2 &&
+git add file2 &&
+git commit -m addition'
+
+cd "$base_dir"
+
+test_expect_success 'cloning alternate repo #1, using #2 as reference' \
+'git clone --reference G F H'
+
+cd "$base_dir"
+
+test_expect_success 'cloning with reference being subset of source (-l -s)' \
+'git clone -l -s --reference A B E'
+
+cd "$base_dir"
+
 test_done