Subject: [BUG] 'git show-ref <pattern>' doesn't work (shows nothing)

From: Jakub Narebski <[email-masked]>
Date: Mon, 18 Oct 2010 12:03:37 +0200

In the git-show-ref documentation we read:

  git-show-ref - List references in a local repository

  SYNOPSIS
  --------
  [verse]
  'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference]
               [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]
               [--heads] [--] [<pattern>...]
  'git show-ref' --exclude-existing[=<pattern>] < ref-list

  DESCRIPTION
  -----------

  Displays references available in a local repository along with the
  associated commit IDs. Results can be filtered using a pattern and
  tags can be dereferenced into object IDs. Additionally, it can be
  used to test whether a particular ref exists.

Let's overlook the fact that the using '--verify' is a separate way of 
operation, and should be given seperate line in synopsis.

What is more important is that filtering using pattern doesn't work.  
All of commands listed below produce empty output:

  $ git show-ref refs/heads
  $ git show-ref refs/heads/
  $ git show-ref 'refs/heads/*'
  $ git show-ref -- refs/heads
  $ git show-ref -- 'refs/heads/*'

Note that using '--heads' gives output:

  $ git show-ref --heads
  01cc740941a6b81fd7be03484c83f688dc79a5f2 refs/heads/Git.pm
  23b2a0387f0acd7e3cd906a0dc3c2c23dd32c03d refs/heads/autoconf
  [...]

but I am more interested in patterns like 'refs/heads/gitweb/', or 
'refs/remotes/origin/', or 'refs/tags/v*'.

For the time of being I'd have to use git-for-each-ref instead:

  $ git for-each-ref refs/heads/
  01cc740941a6b81fd7be03484c83f688dc79a5f2 commit refs/heads/Git.pm
  23b2a0387f0acd7e3cd906a0dc3c2c23dd32c03d commit refs/heads/autoconf

(though to get same output I'd have to use appropriate <format>).
-- 
Jakub Narebski
Poland