From 6468a4e5486d01e4da5ea8e8f2990523c3d18688 Mon Sep 17 00:00:00 2001 From: Jeff Muizelaar Date: Thu, 27 Sep 2012 15:12:52 -0400 Subject: diff: diff.context configuration gives default to -U 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 Signed-off-by: Junio C Hamano --- t/t4055-diff-context.sh | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 t/t4055-diff-context.sh (limited to 't/t4055-diff-context.sh') diff --git a/t/t4055-diff-context.sh b/t/t4055-diff-context.sh new file mode 100755 index 0000000000..35276868ea --- /dev/null +++ b/t/t4055-diff-context.sh @@ -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 -- cgit v1.2.1