chiark / gitweb /
Tag change: Make git_for_each_ref support multiple patterns
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 17 Jul 2016 13:25:50 +0000 (14:25 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 31 Jul 2016 20:50:00 +0000 (21:50 +0100)
By passing $patterns= [ ... ].  No functional change yet as no call
site does this.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Debian/Dgit.pm

index fb983c1a023b2e44d49048255c89dd3ea7797e4a..863d1ad4fec52651f2585a5494630626ff58a885 100644 (file)
@@ -266,7 +266,9 @@ sub git_for_each_ref ($$;$) {
     # calls $func->($objid,$objtype,$fullrefname,$reftail);
     # $reftail is RHS of ref after refs/[^/]+/
     # breaks if $pattern matches any ref `refs/blah' where blah has no `/'
     # calls $func->($objid,$objtype,$fullrefname,$reftail);
     # $reftail is RHS of ref after refs/[^/]+/
     # breaks if $pattern matches any ref `refs/blah' where blah has no `/'
-    my @cmd = (qw(git for-each-ref), $pattern);
+    # $pattern may be an array ref to mean multiple patterns
+    $pattern = [ $pattern ] unless ref $pattern;
+    my @cmd = (qw(git for-each-ref), @$pattern);
     if (defined $gitdir) {
        @cmd = ('sh','-ec','cd "$1"; shift; exec "$@"','x', $gitdir, @cmd);
     }
     if (defined $gitdir) {
        @cmd = ('sh','-ec','cd "$1"; shift; exec "$@"','x', $gitdir, @cmd);
     }