@matheusbsbs / matheus-bagliano / commits / 37d29e1051
Fork 0

t/t8006: test textconv support for blame

Test the correct functionning of textconv with blame <file> and blame HEAD^ <file>. Test the case when no driver is specified. Signed-off-by: Axel Bonnet <axel.bonnet@ensimag.imag.fr> Signed-off-by: Clément Poulain <clement.poulain@ensimag.imag.fr> Signed-off-by: Diane Gasselin <diane.gasselin@ensimag.imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Axel Bonnet committed Jun 7, 2010 at 17:23 UTC 37d29e1051ef8406d21f8b284a659080fcfe3f72
1 file changed +80
t/t8006-blame-textconv.sh new
+80
@@ -0,0 +1,80 @@
1 +#!/bin/sh
2 +
3 +test_description='git blame textconv support'
4 +. ./test-lib.sh
5 +
6 +find_blame() {
7 + sed -e 's/^[^(]*//'
8 +}
9 +
10 +cat >helper <<'EOF'
11 +#!/bin/sh
12 +sed 's/^/converted: /' "$@"
13 +EOF
14 +chmod +x helper
15 +
16 +test_expect_success 'setup ' '
17 + echo test 1 >one.bin &&
18 + echo test number 2 >two.bin &&
19 + git add . &&
20 + GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" &&
21 + echo test 1 version 2 >one.bin &&
22 + echo test number 2 version 2 >>two.bin &&
23 + GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00"
24 +'
25 +
26 +cat >expected <<EOF
27 +(Number2 2010-01-01 20:00:00 +0000 1) test 1 version 2
28 +EOF
29 +
30 +test_expect_success 'no filter specified' '
31 + git blame one.bin >blame &&
32 + find_blame Number2 <blame >result &&
33 + test_cmp expected result
34 +'
35 +
36 +test_expect_success 'setup textconv filters' '
37 + echo "*.bin diff=test" >.gitattributes &&
38 + git config diff.test.textconv ./helper &&
39 + git config diff.test.cachetextconv false
40 +'
41 +
42 +test_expect_success 'blame with --no-textconv' '
43 + git blame --no-textconv one.bin >blame &&
44 + find_blame <blame> result &&
45 + test_cmp expected result
46 +'
47 +
48 +cat >expected <<EOF
49 +(Number2 2010-01-01 20:00:00 +0000 1) converted: test 1 version 2
50 +EOF
51 +
52 +test_expect_success 'basic blame on last commit' '
53 + git blame one.bin >blame &&
54 + find_blame <blame >result &&
55 + test_cmp expected result
56 +'
57 +
58 +cat >expected <<EOF
59 +(Number1 2010-01-01 18:00:00 +0000 1) converted: test number 2
60 +(Number2 2010-01-01 20:00:00 +0000 2) converted: test number 2 version 2
61 +EOF
62 +
63 +test_expect_success 'blame --textconv going through revisions' '
64 + git blame --textconv two.bin >blame &&
65 + find_blame <blame >result &&
66 + test_cmp expected result
67 +'
68 +
69 +test_expect_success 'make a new commit' '
70 + echo "test number 2 version 3" >>two.bin &&
71 + GIT_AUTHOR_NAME=Number3 git commit -a -m Third --date="2010-01-01 22:00:00"
72 +'
73 +
74 +test_expect_success 'blame from previous revision' '
75 + git blame HEAD^ two.bin >blame &&
76 + find_blame <blame >result &&
77 + test_cmp expected result
78 +'
79 +
80 +test_done