for p in `ssh -p 29418 review.example.com gerrit ls-projects`
do
mkdir -p `dirname "$p"`
git clone --bare "ssh://review.example.com:29418/$p.git" "$p.git"
done
이것과 crontab, shell script를 조금 응용하면 계속적으로 업데이트 함으로써 Mirroring 을 할 수 있다.
#!/bin/sh
PLATFORM_HOME=`readlink -e .`
PROJECT_LIST=`ssh -p 29418 review.example.com gerrit ls-projects`
ROOT=”ssh://review.example.com”
DIRNAME=”/usr/bin/dirname”
BASENAME=”/usr/bin/basename”
for PROJECT in $PROJECT_LIST
do
cd $PLATFORM_HOME;
echo “——————————————————–“
echo ” $PROJECT.git”
if [ -d $PROJECT.git ]; then
echo “Entering $PROJECT.git”;
cd $PROJECT.git;
git remote update
else
echo “Cloning $ROOT/$PROJECT.git”;
PROJECT_DIR=`$DIRNAME $PROJECT`
mkdir -p $PROJECT_DIR
git clone –mirror “$ROOT/$PROJECT.git” “$PROJECT.git”
fi
done