GL_BINDIR2 becomes LOCAL_CODE, allows hook propagation also...
plus a bunch of doc changes
This commit is contained in:
parent
3c0f177481
commit
4373c5c74c
8 changed files with 126 additions and 106 deletions
|
@ -323,14 +323,13 @@ sub store_common {
|
|||
$hook_reset++;
|
||||
}
|
||||
|
||||
# propagate user hooks
|
||||
# propagate user-defined (custom) hooks to all repos
|
||||
ln_sf( "$rc{LOCAL_CODE}/hooks/common", "*", "$repo.git/hooks" ) if $rc{LOCAL_CODE};
|
||||
|
||||
# override/propagate gitolite defined hooks for all repos
|
||||
ln_sf( "$rc{GL_ADMIN_BASE}/hooks/common", "*", "$repo.git/hooks" );
|
||||
|
||||
# propagate admin hook
|
||||
# override/propagate gitolite defined hooks for the admin repo
|
||||
ln_sf( "$rc{GL_ADMIN_BASE}/hooks/gitolite-admin", "*", "$repo.git/hooks" ) if $repo eq 'gitolite-admin';
|
||||
|
||||
# g2 diff: no "site-wide" hooks (the stuff in between gitolite hooks
|
||||
# and user hooks) anymore. I don't think anyone used them anyway...
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,11 +25,20 @@ sub post_update {
|
|||
tsh_try("git ls-tree --name-only master");
|
||||
_die "no files/dirs called 'hooks' or 'logs' are allowed" if tsh_text() =~ /^(hooks|logs)$/m;
|
||||
|
||||
my $hooks_changed = 0;
|
||||
{
|
||||
local $ENV{GIT_WORK_TREE} = $rc{GL_ADMIN_BASE};
|
||||
|
||||
tsh_try("git diff --name-only master");
|
||||
$hooks_changed++ if tsh_text() =~ m(/hooks/common/);
|
||||
# the leading slash ensure that this hooks/common directory is below
|
||||
# some top level directory, not *at* the top. That's LOCAL_CODE, and
|
||||
# it's actual name could be anything but it doesn't matter to us.
|
||||
|
||||
tsh_try("git checkout -f --quiet master");
|
||||
}
|
||||
_system("gitolite compile");
|
||||
_system("gitolite setup --hooks-only") if $hooks_changed;
|
||||
_system("gitolite trigger POST_COMPILE");
|
||||
|
||||
exit 0;
|
||||
|
|
|
@ -87,7 +87,7 @@ do $ENV{G3T_RC} if exists $ENV{G3T_RC} and -r $ENV{G3T_RC};
|
|||
# setup some perl/rc/env vars
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
unshift @INC, "$rc{GL_BINDIR2}/lib" if $rc{GL_BINDIR2};
|
||||
unshift @INC, "$rc{LOCAL_CODE}/lib" if $rc{LOCAL_CODE};
|
||||
|
||||
$ENV{PATH} = "$ENV{GL_BINDIR}:$ENV{PATH}";
|
||||
|
||||
|
@ -232,13 +232,13 @@ sub trigger {
|
|||
}
|
||||
|
||||
sub _which {
|
||||
# looks for a file in GL_BINDIR2 or GL_BINDIR. Returns whichever exists
|
||||
# (GL_BINDIR2 preferred if defined) or 0 if not found.
|
||||
# looks for a file in LOCAL_CODE or GL_BINDIR. Returns whichever exists
|
||||
# (LOCAL_CODE preferred if defined) or 0 if not found.
|
||||
my $file = shift;
|
||||
my $mode = shift; # could be 'x' or 'r'
|
||||
|
||||
my @files = ("$rc{GL_BINDIR}/$file");
|
||||
unshift @files, ("$rc{GL_BINDIR2}/$file") if $rc{GL_BINDIR2};
|
||||
unshift @files, ("$rc{LOCAL_CODE}/$file") if $rc{LOCAL_CODE};
|
||||
|
||||
for my $f ( @files ) {
|
||||
return $f if -x $f;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue