]>
Commit | Line | Data |
---|---|---|
c2a06369 JH |
1 | #!/bin/sh |
2 | ||
3 | test_description='git blame corner cases' | |
4 | . ./test-lib.sh | |
5 | ||
6 | pick_fc='s/^[0-9a-f^]* *\([^ ]*\) *(\([^ ]*\) .*/\1-\2/' | |
7 | ||
8 | test_expect_success setup ' | |
9 | ||
10 | echo A A A A A >one && | |
11 | echo B B B B B >two && | |
12 | echo C C C C C >tres && | |
13 | echo ABC >mouse && | |
14 | git add one two tres mouse && | |
15 | test_tick && | |
16 | GIT_AUTHOR_NAME=Initial git commit -m Initial && | |
17 | ||
18 | cat one >uno && | |
19 | mv two dos && | |
20 | cat one >>tres && | |
21 | echo DEF >>mouse | |
22 | git add uno dos tres mouse && | |
23 | test_tick && | |
24 | GIT_AUTHOR_NAME=Second git commit -a -m Second && | |
25 | ||
26 | echo GHIJK >>mouse && | |
27 | git add mouse && | |
28 | test_tick && | |
29 | GIT_AUTHOR_NAME=Third git commit -m Third && | |
30 | ||
31 | cat mouse >cow && | |
32 | git add cow && | |
33 | test_tick && | |
34 | GIT_AUTHOR_NAME=Fourth git commit -m Fourth && | |
35 | ||
36 | { | |
37 | echo ABC | |
38 | echo DEF | |
39 | echo XXXX | |
40 | echo GHIJK | |
41 | } >cow && | |
42 | git add cow && | |
43 | test_tick && | |
44 | GIT_AUTHOR_NAME=Fifth git commit -m Fifth | |
45 | ' | |
46 | ||
47 | test_expect_success 'straight copy without -C' ' | |
48 | ||
49 | git blame uno | grep Second | |
50 | ||
51 | ' | |
52 | ||
53 | test_expect_success 'straight move without -C' ' | |
54 | ||
55 | git blame dos | grep Initial | |
56 | ||
57 | ' | |
58 | ||
59 | test_expect_success 'straight copy with -C' ' | |
60 | ||
61 | git blame -C1 uno | grep Second | |
62 | ||
63 | ' | |
64 | ||
65 | test_expect_success 'straight move with -C' ' | |
66 | ||
67 | git blame -C1 dos | grep Initial | |
68 | ||
69 | ' | |
70 | ||
71 | test_expect_success 'straight copy with -C -C' ' | |
72 | ||
73 | git blame -C -C1 uno | grep Initial | |
74 | ||
75 | ' | |
76 | ||
77 | test_expect_success 'straight move with -C -C' ' | |
78 | ||
79 | git blame -C -C1 dos | grep Initial | |
80 | ||
81 | ' | |
82 | ||
83 | test_expect_success 'append without -C' ' | |
84 | ||
85 | git blame -L2 tres | grep Second | |
86 | ||
87 | ' | |
88 | ||
89 | test_expect_success 'append with -C' ' | |
90 | ||
91 | git blame -L2 -C1 tres | grep Second | |
92 | ||
93 | ' | |
94 | ||
95 | test_expect_success 'append with -C -C' ' | |
96 | ||
97 | git blame -L2 -C -C1 tres | grep Second | |
98 | ||
99 | ' | |
100 | ||
101 | test_expect_success 'append with -C -C -C' ' | |
102 | ||
103 | git blame -L2 -C -C -C1 tres | grep Initial | |
104 | ||
105 | ' | |
106 | ||
107 | test_expect_success 'blame wholesale copy' ' | |
108 | ||
109 | git blame -f -C -C1 HEAD^ -- cow | sed -e "$pick_fc" >current && | |
110 | { | |
111 | echo mouse-Initial | |
112 | echo mouse-Second | |
113 | echo mouse-Third | |
114 | } >expected && | |
115 | diff -u expected current | |
116 | ||
117 | ' | |
118 | ||
119 | test_expect_success 'blame wholesale copy and more' ' | |
120 | ||
121 | git blame -f -C -C1 HEAD -- cow | sed -e "$pick_fc" >current && | |
122 | { | |
123 | echo mouse-Initial | |
124 | echo mouse-Second | |
125 | echo cow-Fifth | |
126 | echo mouse-Third | |
127 | } >expected && | |
128 | diff -u expected current | |
129 | ||
130 | ' | |
131 | ||
132 | test_done |