diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2020-12-09 18:52:08 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-12-10 01:16:42 +0300 |
commit | 058761f1c19b58afd6906672fc013327eb2096c6 (patch) | |
tree | 4872479f5161cc5946b5fafea66ff6ce78deaa9b /t/t4205-log-pretty-formats.sh | |
parent | 9d87d5ae026433a2993fdb757fc80dbdcb078310 (diff) |
pretty format %(trailers): add a "key_value_separator"
Add a "key_value_separator" option to the "%(trailers)" pretty format,
to go along with the existing "separator" argument. In combination
these two options make it trivial to produce machine-readable (e.g. \0
and \0\0-delimited) format output.
As elaborated on in a previous commit which added "keyonly" it was
needlessly tedious to extract structured data from "%(trailers)"
before the addition of this "key_value_separator" option. As seen by
the test being added here extracting this data now becomes trivial.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4205-log-pretty-formats.sh')
-rwxr-xr-x | t/t4205-log-pretty-formats.sh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh index 4c9f6eb794..749bc1431a 100755 --- a/t/t4205-log-pretty-formats.sh +++ b/t/t4205-log-pretty-formats.sh @@ -776,6 +776,39 @@ test_expect_success 'pretty format %(trailers:separator=X,unfold) changes separa test_cmp expect actual ' +test_expect_success 'pretty format %(trailers:key_value_separator) changes key-value separator' ' + git log --no-walk --pretty=format:"X%(trailers:key_value_separator=%x00)X" >actual && + ( + printf "XSigned-off-by\0A U Thor <author@example.com>\n" && + printf "Acked-by\0A U Thor <author@example.com>\n" && + printf "[ v2 updated patch description ]\n" && + printf "Signed-off-by\0A U Thor\n <author@example.com>\nX" + ) >expect && + test_cmp expect actual +' + +test_expect_success 'pretty format %(trailers:key_value_separator,unfold) changes key-value separator' ' + git log --no-walk --pretty=format:"X%(trailers:key_value_separator=%x00,unfold)X" >actual && + ( + printf "XSigned-off-by\0A U Thor <author@example.com>\n" && + printf "Acked-by\0A U Thor <author@example.com>\n" && + printf "[ v2 updated patch description ]\n" && + printf "Signed-off-by\0A U Thor <author@example.com>\nX" + ) >expect && + test_cmp expect actual +' + +test_expect_success 'pretty format %(trailers:separator,key_value_separator) changes both separators' ' + git log --no-walk --pretty=format:"%(trailers:separator=%x00,key_value_separator=%x00%x00,unfold)" >actual && + ( + printf "Signed-off-by\0\0A U Thor <author@example.com>\0" && + printf "Acked-by\0\0A U Thor <author@example.com>\0" && + printf "[ v2 updated patch description ]\0" && + printf "Signed-off-by\0\0A U Thor <author@example.com>" + ) >expect && + test_cmp expect actual +' + test_expect_success 'pretty format %(trailers) combining separator/key/keyonly/valueonly' ' git commit --allow-empty -F - <<-\EOF && Important fix |