3 # Copyright (C) 2006 Martin Waitz <tali@admingilde.org>
6 test_description
='test clone --reference'
11 test_expect_success
'preparing first repository' \
12 'test_create_repo A && cd A &&
15 git commit -m initial'
19 test_expect_success
'preparing second repository' \
20 'git clone A B && cd B &&
21 echo second > file2 &&
23 git commit -m addition &&
29 test_expect_success
'cloning with reference (-l -s)' \
30 'git clone -l -s --reference B A C'
34 test_expect_success
'existence of info/alternates' \
35 'test `wc -l <C/.git/objects/info/alternates` = 2'
39 test_expect_success
'pulling from reference' \
45 test_expect_success
'that reference gets used' \
47 echo "0 objects, 0 kilobytes" > expected &&
48 git count-objects > current &&
49 diff expected current'
53 test_expect_success
'cloning with reference (no -l -s)' \
54 'git clone --reference B file://`pwd`/A D'
58 test_expect_success
'existence of info/alternates' \
59 'test `wc -l <D/.git/objects/info/alternates` = 1'
63 test_expect_success
'pulling from reference' \
64 'cd D && git pull ../B master'
68 test_expect_success
'that reference gets used' \
69 'cd D && echo "0 objects, 0 kilobytes" > expected &&
70 git count-objects > current &&
71 diff expected current'
75 test_expect_success
'updating origin' \
79 git commit -m update &&
85 test_expect_success
'pulling changes from origin' \
91 # the 2 local objects are commit and tree from the merge
92 test_expect_success
'that alternate to origin gets used' \
94 echo "2 objects" > expected &&
95 git count-objects | cut -d, -f1 > current &&
96 diff expected current'
100 test_expect_success
'pulling changes from origin' \
106 # the 5 local objects are expected; file3 blob, commit in A to add it
107 # and its tree, and 2 are our tree and the merge commit.
108 test_expect_success
'check objects expected to exist locally' \
110 echo "5 objects" > expected &&
111 git count-objects | cut -d, -f1 > current &&
112 diff expected current'