Web lists-archives.com

Bug: git branch returns EXIT_SUCCESS when no branches found

Dear Sirs/Madams,

A common use case of git branch – for me – is to use it to test whether
a particular branch satisfies some conditions. A recent example is this:

    if ! git branch "$DEV_BRANCH" --contains master; then
        echo "The development branch ($DEV_BRANCH) is not up to date"
        echo "with the latest master."
        exit 1

Except this doesn't work, because git branch returns success even though
it failed to list any branches satisfying the condition. My workaround
has been to rewrite the condition as

    git branch "$DEV_BRANCH" --contains master \
        | grep -xE '\* *'"$DEV_BRANCH"

but this is obviously not desirable in comparison.

The syntax of e.g. --contains makes it seem almost like this use case of
mine was intended, but the exit code makes me doubt it. Is there any
consideration I'm missing that's a reason for not returning a failure
code when not matching any branches?

Yours faithfully,

Attachment: signature.asc
Description: PGP signature