compile: allow PATH/foo and populate the hash correctly
This commit is contained in:
parent
601eaf8ea1
commit
e922dfb939
|
@ -194,9 +194,9 @@ sub parse_conf_file
|
|||
|
||||
# if no ref is given, this PERM applies to all refs
|
||||
@refs = qw(refs/.*) unless @refs;
|
||||
# fully qualify refs that dont start with "refs/"; prefix them with
|
||||
# "refs/heads/"
|
||||
@refs = map { m(^refs/) or s(^)(refs/heads/); $_ } @refs;
|
||||
# fully qualify refs that dont start with "refs/" or "PATH/";
|
||||
# prefix them with "refs/heads/"
|
||||
@refs = map { m(^(refs|PATH)/) or s(^)(refs/heads/); $_ } @refs;
|
||||
|
||||
# expand the user list, unless it is just "@all"
|
||||
@users = expand_list ( @users )
|
||||
|
@ -233,6 +233,13 @@ sub parse_conf_file
|
|||
# for 2nd level check, store each "ref, perms" pair in order
|
||||
for my $ref (@refs)
|
||||
{
|
||||
# checking PATH based restrictions is expensive for
|
||||
# the update hook (see the changes to src/hooks/update
|
||||
# in this commit for why) so we would *very* much like
|
||||
# to avoid doing it for the large majority of repos
|
||||
# that do *not* use PATH limits. Setting a flag that
|
||||
# can be checked right away will help us do that
|
||||
$repos{$repo}{PATH_LIMITS} = 1 if $ref =~ /^PATH\//;
|
||||
push @{ $repos{$repo}{$user} }, { $ref => $perms }
|
||||
unless $rurp_seen{$repo}{$user}{$ref}{$perms}++;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue