Re: [PATCH 2/2] [TopGit] Portability: Don't use alternation ("|") in sed regular expressions
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 12, 2009, 06:55 UTC
- Message-ID
- <7viqmfjklm.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <1236837389-35687-2-git-send-email-brian.p.campbell@dartmouth.edu>
Brian Campbell <brian.p.campbell@dartmouth.edu> writes:
> +current_branch()
> +{
> + echo "$(git symbolic-ref HEAD | sed -e 's#^refs/heads/##' -e 's#^refs/top-bases/##')"
> +}Two micronits.
- what happens when you are on a detached HEAD?
- You will be utterly confused by a local branch whose name is "refs/top-bases/foo"
To fix these, you might want to do something like:
if head_=$(git symbolic-ref HEAD)
then
case "$head_" in
refs/heads/*)
echo "${head_#refs/heads/}"
;;
refs/top-bases/*)
echo "${head_#refs/top-bases/}"
;;
*)
echo "$head_"
;;
esac
else
whatever you want to do on a detached HEAD
fi