Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
"git blame" learns to unhighlight uninteresting metadata from the originating commit on lines that are the same as the previous one, and also paint lines in different colors depending on the age of the commit. * sb/blame-color: builtin/blame: add new coloring scheme config builtin/blame: highlight recently changed lines builtin/blame: dim uninteresting metadata lines
- Loading branch information
Showing
3 changed files
with
200 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#!/bin/sh | ||
|
||
test_description='colored git blame' | ||
. ./test-lib.sh | ||
|
||
PROG='git blame -c' | ||
. "$TEST_DIRECTORY"/annotate-tests.sh | ||
|
||
test_expect_success 'colored blame colors contiguous lines' ' | ||
git -c color.blame.repeatedLines=yellow blame --color-lines --abbrev=12 hello.c >actual.raw && | ||
git -c color.blame.repeatedLines=yellow -c blame.coloring=repeatedLines blame --abbrev=12 hello.c >actual.raw.2 && | ||
test_cmp actual.raw actual.raw.2 && | ||
test_decode_color <actual.raw >actual && | ||
grep "<YELLOW>" <actual >darkened && | ||
grep "(F" darkened > F.expect && | ||
grep "(H" darkened > H.expect && | ||
test_line_count = 2 F.expect && | ||
test_line_count = 3 H.expect | ||
' | ||
|
||
test_expect_success 'color by age consistently colors old code' ' | ||
git blame --color-by-age hello.c >actual.raw && | ||
git -c blame.coloring=highlightRecent blame hello.c >actual.raw.2 && | ||
test_cmp actual.raw actual.raw.2 && | ||
test_decode_color <actual.raw >actual && | ||
grep "<BLUE>" <actual >colored && | ||
test_line_count = 10 colored | ||
' | ||
|
||
test_expect_success 'blame color by age: new code is different' ' | ||
cat >>hello.c <<-EOF && | ||
void qfunc(); | ||
EOF | ||
git add hello.c && | ||
GIT_AUTHOR_DATE="" git commit -m "new commit" && | ||
git -c color.blame.highlightRecent="yellow,1 month ago, cyan" blame --color-by-age hello.c >actual.raw && | ||
test_decode_color <actual.raw >actual && | ||
grep "<YELLOW>" <actual >colored && | ||
test_line_count = 10 colored && | ||
grep "<CYAN>" <actual >colored && | ||
test_line_count = 1 colored && | ||
grep qfunc colored | ||
' | ||
|
||
test_done |