Skip to content

Instantly share code, notes, and snippets.

@tiewei
Last active August 29, 2015 13:56
Show Gist options
  • Save tiewei/9088353 to your computer and use it in GitHub Desktop.
Save tiewei/9088353 to your computer and use it in GitHub Desktop.
gerrit_repos_sync
#! /bin/bash
gerrit_user='<user>'
gerrit_pass='<pass>'
gerrit_ip='<gerrit_ip>'
gerrit_port='8083'
gerrit_clone_port='29418'
backup_dir="/path/to/git_backup/dir"
#-----------------------------------------
echo "----Get gerrit project list"
echo
projects=`curl --get -u ${gerrit_user}:${gerrit_pass} http://${gerrit_ip}:${gerrit_port}/projects/`
echo "The projects are as below :"
echo "$projects"
echo
#-----------------------------------------
echo "-----Sync repos"
echo
for repo in ${projects}; do
repodir=${backup_dir}/${repo}.git
if [ ! -d "$repodir" ]; then
echo "Repo <${repo}> is not existed, start creating"
echo "git clone --mirror ssh://${gerrit_user}@${gerrit_ip}:${gerrit_clone_port}/${repo}.git $repodir"
git clone --mirror ssh://${gerrit_user}@${gerrit_ip}:${gerrit_clone_port}/${repo}.git $repodir
echo
if [ $? -ne 0 ]; then
echo
echo "!! Warning: Clone <${repo}> failed"
echo
else
echo "!! Success: Clone <${repo}> "
fi
else
echo "Starting sync repo <$repo>"
cd $repodir
pwd
git remote update
if [ $? -ne 0 ]; then
echo
echo "!! Warning: Sync <${repo}> failed"
echo
else
echo "!! Success: Sync <${repo}> "
fi
fi
done
echo
echo "All projects sync done!"
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment