conf/example.gitolite.rc - "slave mode" flag to disable pushes and "list of slaves" hooks/common/post-receive.mirrorpush - code to push to the mirror, creating the repo if needed src/mirror-shell - shell for master pushing to a slave, because we don't actually want to go through gitolite itself, yet we have to take care of $REPO_BASE being wherever. And of course we have to set GL_BYPASS_UPDATE_HOOK to 1 for the push to happen! src/gl-mirror-sync - manually runnable program to sync from current server to another
22 lines
499 B
Bash
Executable file
22 lines
499 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# gitolite mirroring
|
|
|
|
# please see doc/mirroring.mkd for instructions on how to use this
|
|
|
|
if [ -n "$GL_SLAVES" ]
|
|
then
|
|
for mirror in $GL_SLAVES
|
|
do
|
|
if git push --mirror $mirror:$GL_REPO.git
|
|
then
|
|
:
|
|
else
|
|
ssh $mirror mkdir -p $GL_REPO.git
|
|
ssh $mirror git init --bare $GL_REPO.git
|
|
git push --mirror $mirror:$GL_REPO.git ||
|
|
echo "WARNING: mirror push to $mirror failed"
|
|
fi
|
|
done
|
|
fi >&2
|