Skip to content

Instantly share code, notes, and snippets.

@pallat
Forked from yorammi/2repos-sync.sh
Created April 9, 2020 02:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pallat/c159ea1fee7443f396791180aeaa912c to your computer and use it in GitHub Desktop.
Save pallat/c159ea1fee7443f396791180aeaa912c to your computer and use it in GitHub Desktop.
Sync 2 remote repositories script - Just define the 3 variables (use export command for that!)
#!/bin/bash
# REPO_NAME=<repo>.git
# ORIGIN_URL=git@<host>:<project>/$REPO_NAME
# REPO1_URL=git@<host>:<project>/$REPO_NAME
rm -rf $REPO_NAME
git clone --bare $ORIGIN_URL
if [ "$?" != "0" ]; then
echo "ERROR: failed clone of $ORIGIN_URL"
exit 1
fi
cd $REPO_NAME
git remote add --mirror=fetch repo1 $REPO1_URL
if [ "$?" != "0" ]; then
echo "ERROR: failed add remote of $REPO1_URL"
exit 1
fi
git fetch origin --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed fetch from $ORIGIN_URL"
exit 1
fi
git fetch repo1 --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed fetch from $REPO1_URL"
exit 1
fi
git push origin --all
if [ "$?" != "0" ]; then
echo "ERROR: failed push to $ORIGIN_URL"
exit 1
fi
git push origin --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed push tags to $ORIGIN_URL"
exit 1
fi
git push repo1 --all
if [ "$?" != "0" ]; then
echo "ERROR: failed push to $REPO1_URL"
exit 1
fi
git push repo1 --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed push tags to $REPO1_URL"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment