for-each-ref: Allow a trailing slash in the patterns
authorBjörn Steinbrink <B.Steinbrink@gmx.de>
Thu, 28 Aug 2008 02:14:02 +0000 (04:14 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Aug 2008 07:14:06 +0000 (00:14 -0700)
More often than not, I end up using something like refs/remotes/ as the
pattern for for-each-ref, but that doesn't work, because it expects to see
the slash in the ref name right after the matched pattern. So teach it to
accept the slash as the final character in the pattern as well.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-for-each-ref.c

index 4d25ec5..21e92bb 100644 (file)
@@ -652,7 +652,8 @@ static int grab_single_ref(const char *refname, const unsigned char *sha1, int f
                        if ((plen <= namelen) &&
                            !strncmp(refname, p, plen) &&
                            (refname[plen] == '\0' ||
-                            refname[plen] == '/'))
+                            refname[plen] == '/' ||
+                            p[plen-1] == '/'))
                                break;
                        if (!fnmatch(p, refname, FNM_PATHNAME))
                                break;