On Thu, Oct 25, 2018 at 3:04 PM Daniels Umanovskis
<[email protected]> wrote:
> When called with --show-current, git branch will print the current
> branch name and terminate. Only the actual name gets printed,
> without refs/heads. In detached HEAD state, nothing is output.
>
> Signed-off-by: Daniels Umanovskis <[email protected]>
> ---
> diff --git a/t/t3203-branch-output.sh b/t/t3203-branch-output.sh
> @@ -100,6 +100,50 @@ test_expect_success 'git branch -v pattern does not show
> branch summaries' '
> +test_expect_success 'git branch `--show-current` works properly when tag
> exists' '
> + cat >expect <<-\EOF &&
> + branch-and-tag-name
> + EOF
> + test_when_finished "
> + git checkout branch-one
> + git branch -D branch-and-tag-name
> + " &&
> + git checkout -b branch-and-tag-name &&
> + test_when_finished "git tag -d branch-and-tag-name" &&
> + git tag branch-and-tag-name &&
If git-tag crashes before actually creating the new tag, then "git tag
-d", passed to test_when_finished(), will error out too, which is
probably undesirable since "cleanup code" isn't expected to error out.
You could fix it this way:
test_when_finished "git tag -d branch-and-tag-name || :" &&
git tag branch-and-tag-name &&
or, even better, just swap the two lines:
git tag branch-and-tag-name &&
test_when_finished "git tag -d branch-and-tag-name" &&
However, do you even need to clean up the tag? Are there tests
following this one which expect a certain set of tags and fail if this
new one is present? If not, a simpler approach might be just to leave
the tag alone (and the branch too if that doesn't need to be cleaned
up).
> + git branch --show-current >actual &&
> + test_cmp expect actual
> +'