diff: diff.context configuration gives default to -U
[git.git] / t / t4055-diff-context.sh
blob35276868ea7de16fdc0818b90bed22a9640aa891
1 #!/bin/sh
3 # Copyright (c) 2012 Mozilla Foundation
6 test_description='diff.context configuration'
8 . ./test-lib.sh
10 test_expect_success 'setup' '
11 cat >x <<-\EOF &&
12 firstline
18 preline
19 postline
26 EOF
27 git update-index --add x &&
28 git commit -m initial &&
30 git cat-file blob HEAD:x |
31 sed "/preline/a\
32 ADDED" >x &&
33 git update-index --add x &&
34 git commit -m next &&
36 git cat-file blob HEAD:x |
37 sed s/ADDED/MODIFIED/ >x
40 test_expect_success 'the default number of context lines is 3' '
41 git diff >output &&
42 ! grep "^ d" output &&
43 grep "^ e" output &&
44 grep "^ j" output &&
45 ! grep "^ k" output
48 test_expect_success 'diff.context honored by "log"' '
49 git log -1 -p >output &&
50 ! grep firstline output &&
51 git config diff.context 8 &&
52 git log -1 -p >output &&
53 grep "^ firstline" output
56 test_expect_success 'The -U option overrides diff.context' '
57 git config diff.context 8 &&
58 git log -U4 -1 >output &&
59 ! grep "^ firstline" output
62 test_expect_success 'diff.context honored by "diff"' '
63 git config diff.context 8 &&
64 git diff >output &&
65 grep "^ firstline" output
68 test_expect_success 'plumbing not affected' '
69 git config diff.context 8 &&
70 git diff-files -p >output &&
71 ! grep "^ firstline" output
74 test_expect_success 'non-integer config parsing' '
75 git config diff.context no &&
76 test_must_fail git diff 2>output &&
77 test_i18ngrep "bad config value" output
80 test_expect_success 'negative integer config parsing' '
81 git config diff.context -1 &&
82 test_must_fail git diff 2>output &&
83 test_i18ngrep "bad config file" output
86 test_expect_success '-U0 is valid, so is diff.context=0' '
87 git config diff.context 0 &&
88 git diff >output &&
89 grep "^-ADDED" output &&
90 grep "^+MODIFIED" output
93 test_done