Subject: Re: git branch command is incompatible with bash

From: Jeff King <[email-masked]>
Date: Tue, 28 Jul 2015 12:25:17 -0400

On Tue, Jul 28, 2015 at 08:23:40AM -0700, Junio C Hamano wrote:

> I can see that "symbolic-ref --short" is much newer than the other
> one, so addition of "--abbrev-ref" to "rev-parse" may have been a
> mistake made while being desperate (i.e. not having a way to do so
> with plumbing, we wanted "some" way to do so and chose poorly).

I think --abbrev-ref can handle much more than just shortening symrefs,
though:

E.g. resolving other symbolic names:

  $ git rev-parse --abbrev-ref @{u}
  origin/master

Or resolving any arbitrary name you happen to have:

  $ git rev-parse --abbrev-ref refs/heads/master
  master

Even ones that aren't fully qualified (which would be tough to do with
simple pattern substitution):

  $ git rev-parse --abbrev-ref remotes/origin/master
  origin/master

Or handling ambiguities during abbreviation:

  $ git tag master
  $ git rev-parse --abbrev-ref HEAD
  heads/master

-Peff