From 8ca7d17ada40ad376e5a14f4bd5e32ef03abe11d Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Sat, 4 Sep 2010 00:40:03 +0300 Subject: update-git-svn: rename to fit naming convention --- update_git_svn | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 update_git_svn (limited to 'update_git_svn') diff --git a/update_git_svn b/update_git_svn new file mode 100755 index 0000000..aaf5f16 --- /dev/null +++ b/update_git_svn @@ -0,0 +1,58 @@ +#!/bin/sh + +# Push changes from local git-svn mirrors to gitorious repositories: +BASE_DIR=/home/git +PUSH_MIRROR=gitorious +FORCE_UPLOAD=0 + +set -e + +while getopts 'fh' opt; do + case "$opt" in + f) FORCE_UPLOAD=1;; + h) usage; exit 0;; + \?) usage; exit 1;; + esac +done + +shift $((OPTIND-1)) + +REPOS="${1:-asterisk dahdi-linux dahdi-tools libpri octapi}" + +# An explicit list of heads to mirror. Don't push any random working branch +# svn_* - branchs +# v[0-9]* - tags +# vPR[0-9]* - tags of octapi +mirrored_refs() { + ls .git/refs/heads/ | grep '^svn_' + ls .git/refs/tags/ | egrep '^v(|PR)[0-9]\+\.' +} + +mirror_repo() { + # Sanity check: make sure we already set up mirroring: + if ! grep -q "^\[remote \"$PUSH_MIRROR\"\]" .git/config; then + return + fi + # FIXME: make less noisy? + git push --thin --force "$PUSH_MIRROR" `mirrored_refs` +} + +# A quick snapshot of this repository. To help check if anything changed: +remotes_checksum() { + grep . .git/refs/remotes/* .git/refs/remotes/tags/* \ + | sha1sum | cut -d' ' -f1 +} + +for repo in $REPOS; do + cd $BASE_DIR/$repo + git checkout --quiet master + sum_before=`remotes_checksum` + git svn fetch --quiet --fetch-all + sum_after=`remotes_checksum` + if [ "$sum_before" = "$sum_after" ] && [ "$FORCE_UPLOAD" = 0 ]; then + continue + fi + ../asterisk-tools/update_branches + ../asterisk-tools/update_tags + mirror_repo +done -- cgit v1.2.3