Browse Source
previously the only ways to alias a --pretty format within git were either to set the format as your default format (via the format.pretty configuration variable), or by using a regular git alias. This left the definition of more complicated formats to the realm of "builtin or nothing", with user-defined formats usually being reserved for quick one-offs. Here we allow user-defined formats to enjoy more or less the same benefits of builtins. By defining pretty.myalias, "myalias" can be used in place of whatever would normally come after --pretty=. This can be a format:, tformat:, raw (ie, defaulting to tformat), or the name of another builtin or user-defined pretty format. Signed-off-by: Will Palmer <wmpalmer@gmail.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Will Palmer
15 years ago
committed by
Junio C Hamano
4 changed files with 145 additions and 3 deletions
@ -0,0 +1,74 @@
@@ -0,0 +1,74 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Copyright (c) 2010, Will Palmer |
||||
# |
||||
|
||||
test_description='Test pretty formats' |
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success 'set up basic repos' ' |
||||
>foo && |
||||
>bar && |
||||
git add foo && |
||||
test_tick && |
||||
git commit -m initial && |
||||
git add bar && |
||||
test_tick && |
||||
git commit -m "add bar" |
||||
' |
||||
|
||||
test_expect_success 'alias builtin format' ' |
||||
git log --pretty=oneline >expected && |
||||
git config pretty.test-alias oneline && |
||||
git log --pretty=test-alias >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'alias masking builtin format' ' |
||||
git log --pretty=oneline >expected && |
||||
git config pretty.oneline "%H" && |
||||
git log --pretty=oneline >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'alias user-defined format' ' |
||||
git log --pretty="format:%h" >expected && |
||||
git config pretty.test-alias "format:%h" && |
||||
git log --pretty=test-alias >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'alias user-defined tformat' ' |
||||
git log --pretty="tformat:%h" >expected && |
||||
git config pretty.test-alias "tformat:%h" && |
||||
git log --pretty=test-alias >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'alias non-existant format' ' |
||||
git config pretty.test-alias format-that-will-never-exist && |
||||
test_must_fail git log --pretty=test-alias |
||||
' |
||||
|
||||
test_expect_success 'alias of an alias' ' |
||||
git log --pretty="tformat:%h" >expected && |
||||
git config pretty.test-foo "tformat:%h" && |
||||
git config pretty.test-bar test-foo && |
||||
git log --pretty=test-bar >actual && test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'alias masking an alias' ' |
||||
git log --pretty=format:"Two %H" >expected && |
||||
git config pretty.duplicate "format:One %H" && |
||||
git config --add pretty.duplicate "format:Two %H" && |
||||
git log --pretty=duplicate >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'alias loop' ' |
||||
git config pretty.test-foo test-bar && |
||||
git config pretty.test-bar test-foo && |
||||
test_must_fail git log --pretty=test-foo |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue