summaryrefslogtreecommitdiffstats
path: root/t/t7004-tag.sh
diff options
context:
space:
mode:
authorØystein Walle <oystwa@gmail.com>2023-04-07 19:53:16 +0200
committerJunio C Hamano <gitster@pobox.com>2023-04-13 17:07:45 +0200
commitaabfdc9514a51d8d9a2f3afbc29e5044ccf7191b (patch)
treece139c4fbbe04454b87b128865b2047f8ae5070f /t/t7004-tag.sh
parentGit 2.40 (diff)
downloadgit-aabfdc9514a51d8d9a2f3afbc29e5044ccf7191b.tar.xz
git-aabfdc9514a51d8d9a2f3afbc29e5044ccf7191b.zip
branch, for-each-ref, tag: add option to omit empty lines
If the given format string expands to the empty string, a newline is still printed. This makes using the output linewise more tedious. For example, git update-ref --stdin does not accept empty lines. Add options to "git branch", "git for-each-ref", and "git tag" to not print these empty lines. The default behavior remains the same. Signed-off-by: Øystein Walle <oystwa@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7004-tag.sh')
-rwxr-xr-xt/t7004-tag.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
index 9aa1660651..6493583110 100755
--- a/t/t7004-tag.sh
+++ b/t/t7004-tag.sh
@@ -2001,6 +2001,22 @@ test_expect_success '--format should list tags as per format given' '
test_cmp expect actual
'
+test_expect_success '--format --omit-empty works' '
+ cat >expect <<-\EOF &&
+ refname : refs/tags/v1.0
+
+ refname : refs/tags/v1.1.3
+ EOF
+ git tag -l --format="%(if:notequals=refs/tags/v1.0.1)%(refname)%(then)refname : %(refname)%(end)" "v1*" >actual &&
+ test_cmp expect actual &&
+ cat >expect <<-\EOF &&
+ refname : refs/tags/v1.0
+ refname : refs/tags/v1.1.3
+ EOF
+ git tag -l --omit-empty --format="%(if:notequals=refs/tags/v1.0.1)%(refname)%(then)refname : %(refname)%(end)" "v1*" >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'git tag -l with --format="%(rest)" must fail' '
test_must_fail git tag -l --format="%(rest)" "v1*"
'