-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pretty: add aliases for pretty formats
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>
- Loading branch information
Will Palmer
authored and
Junio C Hamano
committed
May 3, 2010
1 parent
2d7671e
commit 8028184
Showing
4 changed files
with
145 additions
and
3 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
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,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 |