Browse Source
Introduce a configuration variable diff.context that tells Porcelain commands to use a non-default number of context lines instead of 3 (the default). With this variable, users do not have to keep repeating "git log -U8" from the command line; instead, it becomes sufficient to say "git config diff.context 8" just once. Signed-off-by: Jeff Muizelaar <jmuizelaar@mozilla.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Jeff Muizelaar
12 years ago
committed by
Junio C Hamano
3 changed files with 105 additions and 1 deletions
@ -0,0 +1,93 @@ |
|||||||
|
#!/bin/sh |
||||||
|
# |
||||||
|
# Copyright (c) 2012 Mozilla Foundation |
||||||
|
# |
||||||
|
|
||||||
|
test_description='diff.context configuration' |
||||||
|
|
||||||
|
. ./test-lib.sh |
||||||
|
|
||||||
|
test_expect_success 'setup' ' |
||||||
|
cat >x <<-\EOF && |
||||||
|
firstline |
||||||
|
b |
||||||
|
c |
||||||
|
d |
||||||
|
e |
||||||
|
f |
||||||
|
preline |
||||||
|
postline |
||||||
|
i |
||||||
|
j |
||||||
|
k |
||||||
|
l |
||||||
|
m |
||||||
|
n |
||||||
|
EOF |
||||||
|
git update-index --add x && |
||||||
|
git commit -m initial && |
||||||
|
|
||||||
|
git cat-file blob HEAD:x | |
||||||
|
sed "/preline/a\ |
||||||
|
ADDED" >x && |
||||||
|
git update-index --add x && |
||||||
|
git commit -m next && |
||||||
|
|
||||||
|
git cat-file blob HEAD:x | |
||||||
|
sed s/ADDED/MODIFIED/ >x |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'the default number of context lines is 3' ' |
||||||
|
git diff >output && |
||||||
|
! grep "^ d" output && |
||||||
|
grep "^ e" output && |
||||||
|
grep "^ j" output && |
||||||
|
! grep "^ k" output |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'diff.context honored by "log"' ' |
||||||
|
git log -1 -p >output && |
||||||
|
! grep firstline output && |
||||||
|
git config diff.context 8 && |
||||||
|
git log -1 -p >output && |
||||||
|
grep "^ firstline" output |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'The -U option overrides diff.context' ' |
||||||
|
git config diff.context 8 && |
||||||
|
git log -U4 -1 >output && |
||||||
|
! grep "^ firstline" output |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'diff.context honored by "diff"' ' |
||||||
|
git config diff.context 8 && |
||||||
|
git diff >output && |
||||||
|
grep "^ firstline" output |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'plumbing not affected' ' |
||||||
|
git config diff.context 8 && |
||||||
|
git diff-files -p >output && |
||||||
|
! grep "^ firstline" output |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'non-integer config parsing' ' |
||||||
|
git config diff.context no && |
||||||
|
test_must_fail git diff 2>output && |
||||||
|
test_i18ngrep "bad config value" output |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'negative integer config parsing' ' |
||||||
|
git config diff.context -1 && |
||||||
|
test_must_fail git diff 2>output && |
||||||
|
test_i18ngrep "bad config file" output |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success '-U0 is valid, so is diff.context=0' ' |
||||||
|
git config diff.context 0 && |
||||||
|
git diff >output && |
||||||
|
grep "^-ADDED" output && |
||||||
|
grep "^+MODIFIED" output |
||||||
|
' |
||||||
|
|
||||||
|
test_done |
Loading…
Reference in new issue