Subject: Re: [PATCHv1 2/2] git-p4: work with a detached head

From: Junio C Hamano <[email-masked]>
Date: Wed, 09 Sep 2015 14:52:13 -0700

Luke Diamand <[email-masked]> writes:

>      def run(self, args):
>          if len(args) == 0:
>              self.master = currentGitBranch()
> -            if len(self.master) == 0 or not gitBranchExists("refs/heads/%s" % self.master):
> -                die("Detecting current git branch failed!")
> +            if self.master == "undefined":
> +                self.master = None

The comparison with textual "undefined" smelled fishy and I ended up
looking at the implementation of currentGitBranch().

    def currentGitBranch():
        return read_pipe("git name-rev HEAD").split(" ")[1].strip()

Yuck.  I know it is not entirely the fault of this patch, but
shouldn't it be reading from

    $ git symbolic-ref HEAD

and catch the error "fatal: ref HEAD is not a symbolic ref" and use
it as a signal to tell that the HEAD is detached?