Skip to content
  • Thomas Rast's avatar
    Introduce new pretty formats %g[sdD] for reflog information · 8f8f5476
    Thomas Rast authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Add three new --pretty=format escapes:
    
      %gD  long  reflog descriptor (e.g. refs/stash@{0})
      %gd  short reflog descriptor (e.g. stash@{0})
      %gs  reflog message
    
    This is achieved by passing down the reflog info, if any, inside the
    pretty_print_context struct.
    
    We use the newly refactored get_reflog_selector(), and give it some
    extra functionality to extract a shortened ref.  The shortening is
    cached inside the commit_reflogs struct; the only allocation of it
    happens in read_complete_reflog(), where it is initialised to 0.  Also
    add another helper get_reflog_message() for the message extraction.
    
    Note that the --format="%h %gD: %gs" tests may not work in real
    repositories, as the --pretty formatter doesn't know to leave away the
    ": " on the last commit in an incomplete (because git-gc removed the
    old part) reflog.  This equivalence is nevertheless the main goal of
    this patch.
    
    Thanks to Jeff King for reviews, the %gd testcase and documentation.
    
    Signed-off-by: default avatarThomas Rast <trast@student.ethz.ch>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    8f8f5476