Skip to content
  • Jeff King's avatar
    rev-parse: fix parent shorthands with --symbolic · a2e7b04c
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    The try_parent_shorthands() function shows each parent via
    show_rev(). We pass the correct parent sha1, but our "name"
    parameter still points at the original refname. So asking
    for a regular rev-parse works fine (it prints the sha1s),
    but asking for the symbolic name gives nonsense like:
    
        $ git rev-parse --symbolic HEAD^-1
        HEAD
        ^HEAD
    
    which is always an empty set of commits. Asking for "^!" is
    likewise broken, with the added bonus that its prints ^HEAD
    for _each_ parent. And "^@" just prints HEAD repeatedly.
    
    Arguably it would be correct to just pass NULL as the name
    here, and always get the parent expressed as a sha1. The
    "--symbolic" documentaton claims only "as close to the
    original input as possible", and we certainly fallback to
    sha1s where necessary. But it's pretty easy to generate a
    symbolic name on the fly from the original.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    a2e7b04c