From: Junio C Hamano Date: Thu, 12 Mar 2009 06:55:49 GMT Subject: Re: [PATCH 2/2] [TopGit] Portability: Don't use alternation ("|") in sed regular expressions Message-ID: <7viqmfjklm.fsf@gitster.siamese.dyndns.org> In-Reply-To: <1236837389-35687-2-git-send-email-brian.p.campbell@dartmouth.edu> Brian Campbell 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