[git][svn] git-svnでsvn:externalsをfetchするスクリプト
git-svnはsvn:externalsの項目をfetchしてくれない。
とりあえずどこにsvn:externalsがついているかを見せてくれるshow-externalsというコマンドはあるので
それを元にフェッチしてくれるスクリプトを作ったらこんな感じになった
#!/bin/sh GIT='/usr/bin/git' EXTERNALS=`$GIT svn show-externals |sed '/^# /d'|perl -pe 's/\s+(h|s)/|$1/g'` GIT_EXCLUDE='.git/info/exclude' external_dir='.svnexternals' mkdir -p $external_dir echo $external_dir >> $GIT_EXCLUDE for external in $EXTERNALS; do dir=`echo $external|cut -d '|' -f 1 |cut -d '/' -f 2-` repos=`echo $external|cut -d '|' -f 2` mkdir -p $external_dir/`dirname $dir` $GIT svn clone $repos ${external_dir}/$dir ln -s `pwd`/${external_dir}/$dir $dir echo $dir >> $GIT_EXCLUDE done