diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/git-checkout.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh new file mode 100755 index 0000000000..15b3ce9661 --- /dev/null +++ b/scripts/git-checkout.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +if test $# -lt 3; then + echo "Usage: $0 <tree> <tag> <dir>" + exit 1 +fi + +TREE=$1 +TAG=$2 +DIR=$3 + +set -e + +if test \! -d $DIR-remote; then + rm -rf $DIR-remote $DIR-remote.tmp + mkdir $DIR-remote.tmp; rmdir $DIR-remote.tmp + $GIT clone $TREE $DIR-remote.tmp + if test "$TAG" ; then + cd $DIR-remote.tmp + $GIT branch -D dummy >/dev/null 2>&1 ||: + $GIT checkout -b dummy $TAG + cd .. + fi + mv $DIR-remote.tmp $DIR-remote +fi +rm -f $DIR +ln -sf $DIR-remote $DIR |