/
serggt1
/
scripts
Обзор
Документация
Войти
/
serggt1
/
scripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
git-import-svn
83 строки
2 KB
Sergey Ponomarev
git-import-svn: svetlanushka
09 мар 2011, 14:44
09 мар 2011, 14:44
66d52e1
Код
Авторство
О чём код?
#!/bin/bash if [ $# -lt 3 ]; then echo "Usage: $0 <folder> <svn url> <git url> <git svn args>" exit 0 fi FOLDER="$1" FOLDER_="$1_" SVN_URL="$2" GIT_URL="$3" GIT_SVN_ARGS="$4" CURDIR=`pwd` function git_convert_branches() { GIT=/usr/bin/git for branch in $($GIT branch -r); do if [ $(echo $branch | egrep "tags/.+$") ]; then version=$(basename $branch) subject=$($GIT log -1 --pretty=format:"%s" $branch) export GIT_COMMITTER_DATE=$($GIT log -1 --pretty=format:"%ci" $branch) echo "Tag $version [y/n]?" read yesno if [ -z $yesno ] || [ $yesno = "y" ]; then $GIT tag -a -f -m "$subject" "$version" "$branch^" $GIT branch -d -r $branch fi fi done } cat > /tmp/svn-users << EOF serg = Sergey Ponomarev <sergey.ponomarev@vistar.su> irina = Irina Nenahova <irina.nenahova@vistar.su> katya_pomitova = Ekaterina Pomitova <ekaterina.pomitova@vistar.su> lamerman = Alexander Ponomarev <alexander.ponomarev@gmail.com> Shustic = Shustikova Valentina <shustic@mail.ru> affection = Marina Zaytceva <affection@mail.ru> svetlanushka = Sveta Korzunina <svetlanushka@pisem.net> EOF # fetch mkdir --parents "$FOLDER_" cd "$FOLDER_" git svn init "$SVN_URL" $GIT_SVN_ARGS --no-metadata git config svn.authorsfile /tmp/svn-users git svn fetch # create ignore #git svn create-ignore #git commit -m 'added .gitignore converted from svn:ignore' # convert branches git_convert_branches # clone and remove cd "$CURDIR" git clone "$FOLDER_" "$FOLDER" yes | rm -r "$FOLDER_" cd "$FOLDER" # gitignore cat > .gitignore << EOF target *.bak log EOF git add .gitignore git commit -m "gitignore" # configure branches git remote rm origin git remote add origin "$GIT_URL" git config branch.master.remote origin git config branch.master.merge refs/heads/master cd "$CURDIR"