Fix git-rev-list "date order" with --topo-order
[git] / t / t5400-send-pack.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2005 Junio C Hamano
4 #
5
6 test_description='See why rewinding head breaks send-pack
7
8 '
9 . ./test-lib.sh
10
11 touch cpio-test
12 test_expect_success 'working cpio' 'echo cpio-test | cpio -o > /dev/null'
13
14 cnt='1'
15 test_expect_success setup '
16         tree=$(git-write-tree) &&
17         commit=$(echo "Commit #0" | git-commit-tree $tree) &&
18         zero=$commit &&
19         parent=$zero &&
20         for i in $cnt
21         do
22             sleep 1 &&
23             commit=$(echo "Commit #$i" | git-commit-tree $tree -p $parent) &&
24             parent=$commit || return 1
25         done &&
26         git-update-ref HEAD "$commit" &&
27         git-clone -l ./. victim &&
28         cd victim &&
29         git-log &&
30         cd .. &&
31         git-update-ref HEAD "$zero" &&
32         parent=$zero &&
33         for i in $cnt
34         do
35             sleep 1 &&
36             commit=$(echo "Rebase #$i" | git-commit-tree $tree -p $parent) &&
37             parent=$commit || return 1
38         done &&
39         git-update-ref HEAD "$commit" &&
40         echo Rebase &&
41         git-log'
42
43 test_expect_success \
44         'pushing rewound head should not barf but require --force' ' 
45         # should not fail but refuse to update.
46         git-send-pack ./victim/.git/ master &&
47         if cmp victim/.git/refs/heads/master .git/refs/heads/master
48         then
49                 # should have been left as it was!
50                 false
51         else
52                 true
53         fi &&
54         # this should update
55         git-send-pack --force ./victim/.git/ master &&
56         cmp victim/.git/refs/heads/master .git/refs/heads/master
57 '
58
59 test_done