648676faec
modifications: - call setup_gitweb_access and setup_daemon_access from with get_set_perms so when the user sets a perm explicitly it works - in setup_gitweb_access, do not delete description file or gitweb.owner if the repo is wild - make the "fork" adc set gitweb.owner *and* call setperms using GL_WILDREPOS_DEFPERMS - add tests bug fixes: - gl-auth did not even *look* at GL_WILDREPOS_DEFPERMS when auto-"C"reating a wild repo; fixed - setup_gitweb_access did not delete the description file as consistently as it deleted the owner what will NOT work: - removing gitweb permissions does not clear the name from "projects.list". That's complicated, so just wait till the next "compile" to make this happen (thanks to Jefferai for driving this...) ---- mildly puzzling: for some strange reason, after a "git ls-remote ...try3" in t58, instead of not creating a "description" file, we started seeing a 73-byte file containing this message: Unnamed repository; edit this file 'description' to name the repository.
30 lines
800 B
Bash
Executable file
30 lines
800 B
Bash
Executable file
#!/bin/sh
|
|
|
|
from=$1
|
|
to=$2
|
|
|
|
. $(dirname $0)/adc.common-functions
|
|
|
|
get_rights_and_owner $from
|
|
[ -z "$perm_read" ] && die "no read permissions on $from"
|
|
|
|
get_rights_and_owner $to
|
|
[ -z "$perm_create" ] && die "no create permissions on $to"
|
|
|
|
# clone $from to $to
|
|
git clone --bare -l $GL_REPO_BASE_ABS/$from.git $GL_REPO_BASE_ABS/$to.git
|
|
[ $? -ne 0 ] && exit 1
|
|
|
|
# fix up creator, gitweb owner, and hooks
|
|
cd $GL_REPO_BASE_ABS/$to.git
|
|
echo $GL_USER > gl-creater
|
|
git config gitweb.owner "$GL_USER"
|
|
( cd $HOME;perl -e 'do ".gitolite.rc"; print $GL_WILDREPOS_DEFPERMS' ) |
|
|
SSH_ORIGINAL_COMMAND="setperms $to" $GL_BINDIR/gl-auth-command $GL_USER
|
|
cp -R $GL_REPO_BASE_ABS/$from.git/hooks/* $GL_REPO_BASE_ABS/$to.git/hooks
|
|
|
|
if [ -n "$GL_WILDREPOS_DEFPERMS" ]; then
|
|
echo "$GL_WILDREPOS_DEFPERMS" > gl-perms
|
|
fi
|
|
|