Carga Inicial

parents
# Migração do svn para o gitlab
## Este projeto foi criado para auxilio a migração dos projetos svn para o git
### Dependências:
- git version 2.11.0
- git-svn version 2.11.0 (svn 1.9.5)
- ~/svn-migration-scripts.jar
\ No newline at end of file
#!/usr/bin/env bash
# Definir cores
GREEN='\033[0;32m'
CYAN='\033[0;36m'
YELLOW='\033[1;33m'
RED="\033[0;31m"
NC='\033[0m'
# Read secret string
read_secret()
{
stty -echo
trap 'stty echo' EXIT
read "$@"
stty echo
trap - EXIT
echo
}
#
#
echo
printf "${YELLOW}#### MIGRAÇÃO DO SVN PARA O GITLAB ####${NC}"
echo
while : ;
do
echo
read -p 'Qual seu usuário do LDAP do SVN/GIT da PRODEPA? ' USERLDAP
if [ -z $USERLDAP ];
then
echo "Seu usuário deve ser informado"
continue
else
break
fi
done
while : ;
do
echo
printf 'Informe sua senha do LDAP do SVN/GIT da PRODEPA? '
read_secret PASSWLDAP
if [ -z $PASSWLDAP ];
then
echo "Sua senha deve ser informado"
continue
else
break
fi
done
echo
while : ;
do
echo
read -p 'Qual o nome do projeto que você quer migrar do SVN para o GITLAB? ' PROJSVN
if [ -z $PROJSVN ];
then
echo "Nome do projeto deve ser informado"
continue
else
printf "${RED}http://svn.dds.prodepa.gov.br/private/$PROJSVN/${NC}"
echo
read -p 'Está correta a URL do projeto? s(sim) ' SIM
if [ $SIM = "s" ];
then
URLPROJSVN="http://svn.dds.prodepa.gov.br/private/$PROJSVN/"
break
else
continue
fi
fi
done
echo
while : ;
do
echo
read -p 'Cole aqui a URL .git do novo projeto no GITLAB ' URLGIT
if [ -z $URLGIT ];
then
echo "URL do novo projeto no GITLAB deve ser informado"
continue
else
printf "${RED}$URLGIT${NC}"
echo
read -p 'Está correta a URL do novo projeto no GITLAB? s(sim) ' SIM1
if [ $SIM1 = "s" ];
then
break
else
continue
fi
fi
done
echo
while : ;
do
echo
read -p 'Qual o nome do branch para eleger como master? (de ENTRER se for o trunk) ' BRANCHSVN
if [ -z $BRANCHSVN ];
then
MASTERSVN="/trunk"
break
else
MASTERSVN="/branches/$BRANCHSVN"
break
fi
done
echo
printf "${YELLOW}1/3-Passo: Verificar assinaturas de commits dos usuários no projeto${NC}"
echo
sudo java -jar ~/svn-migration-scripts.jar authors $URLPROJSVN $USERLDAP $PASSWLDAP > authors_$PROJSVN.txt
sed -i "s'mycompany.com'prodepa.pa.gov.br'g" authors_$PROJSVN.txt
echo
printf "${YELLOW}2/3-Passo: Importando projeto: ${RED}$URLPROJSVN${NC}"
echo
git svn clone --trunk=$MASTERSVN --branches=/branches/* --tags=/tags/* --authors-file=authors_$PROJSVN.txt $URLPROJSVN $PROJSVN
echo
echo
printf "${YELlOW}Importação do projeto ${RED}$PROJSVN${NC} ${YELLOW}concluída{NC}"
echo
cd $PROJSVN/
printf "${YELLOW}3/3-Passo: Regeando referências das tags e branchs para o git${NC}"
echo
sudo git for-each-ref refs/remotes/origin | cut -d / -f 4- | grep -v @ | grep -v / | grep -v trunk | while read branchname; do git branch "$branchname"; done
echo
sudo git for-each-ref refs/remotes/origin/tags | cut -d / -f 5- | grep -v @ | while read tagname; do git tag "$tagname"; done
if [ -z $BRANCHSVN ];
then
MASTERSVN="/trunk"
else
cp .git/refs/heads/master .git/refs/heads/$BRANCHSVN
fi
git remote add origin $URLGIT
git push origin --all
git push origin --tags
echo
printf "${YELLOW}#### MIGRAÇÃO DO SVN PARA O GITLAB CONCLUIDA ####${NC}"
echo
echo
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment