Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
svn_to_git
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
publicos
svn_to_git
svn_to_git
Commits
c1c8a920
Commit
c1c8a920
authored
Jan 24, 2019
by
Luiz Carlos Paulino da Rocha
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resumo
parent
35d1e45a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
200 additions
and
54 deletions
+200
-54
README.md
README.md
+3
-2
git_carga.sh
git_carga.sh
+127
-0
git_carga_conf.sh
git_carga_conf.sh
+13
-0
gitcarga.sh
gitcarga.sh
+57
-52
No files found.
README.md
View file @
c1c8a920
...
...
@@ -6,9 +6,9 @@
-
~/svn-migration-scripts.jar
-
gitcarga.sh
### Passos
teste web-hook 12
### Passos
-
instale o git e o git-svn
-
baixe este projeto
-
copie para o rais do seu usuário o arquivo svn-migration-scripts.jar
-
crie uma pasta para migrar svn_to_git e copie o bash gitcarga.sh para a mesma.
-
execute o bash gitcarga.sh e informe o dados para importação do projeto.
-
execute o bash gitcarga.sh e informe o dados para importação do projeto.
\ No newline at end of file
git_carga.sh
0 → 100644
View file @
c1c8a920
#!/usr/bin/env bash
# Definir cores
GREEN
=
'\033[0;32m'
CYAN
=
'\033[0;36m'
YELLOW
=
'\033[1;33m'
RED
=
"
\0
33[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 de acesso do SVN? '
USERLDAP
#
if
[
-z
$USERLDAP
]
;
then
echo
"Seu usuário deve ser informado"
continue
else
break
fi
done
while
:
;
do
echo
printf
'Qual sua senha de acesso ao SVN? '
read_secret PASSWLDAP
#
if
[
-z
$PASSWLDAP
]
;
then
echo
"Sua senha deve ser informado"
continue
else
break
fi
done
#
.
~/git_carga_conf.sh
#
echo
$URLSVN
echo
$PROJSVN
echo
$URLGIT
#
BRANCHSVN
=
''
if
[
-z
$BRANCHSVN
]
;
then
MASTERSVN
=
"/trunk"
else
MASTERSVN
=
"/branches/
$BRANCHSVN
"
fi
URLPROJSVN
=
"
$URLSVN
/
$PROJSVN
/"
URLGIT1
=
"https://
${
USERLDAP
}
@
${
URLGIT
}
"
NEWURLGIT
=
$(
echo
$URLGIT1
| sed
's/@/'
":"
$PASSWLDAP
"@"
'/'
)
PATHGIT
=
"
${
PROJSVN
}
_GIT"
#
echo
echo
printf
"
${
YELLOW
}
1/3-Passo: Verificar assinaturas de commits dos usuários no projeto SVN
${
NC
}
"
echo
echo
$PASSWLDAP
|
$USERLDAP
|
sudo
java
-jar
~/svn-migration-scripts.jar authors
$URLPROJSVN
$USERLDAP
$PASSWLDAP
>
authors_
$PROJSVN
.txt
#
DOMSVNGIT
=
'prodepa.pa.gov.br'
#
sed
-i
"s'mycompany.com'
$DOMSVNGIT
'g"
authors_
$PROJSVN
.txt
echo
echo
printf
"
${
YELLOW
}
Assinatura do projeto no SVN
${
RED
}
$PROJSVN
${
NC
}
${
YELLOW
}
concluída
${
NC
}
"
echo
echo
printf
"
${
YELLOW
}
2/3-Passo: Importando projeto do SVN:
${
RED
}
$URLPROJSVN
${
NC
}
"
echo
echo
$PASSWLDAP
| git svn clone
--no-metadata
--username
$USERLDAP
--stdlayout
--authors-file
=
authors_
$PROJSVN
.txt
--prefix
=
""
$URLPROJSVN
$PATHGIT
echo
echo
printf
"
${
YELLOW
}
Importação do projeto
${
RED
}
$PROJSVN
${
NC
}
${
YELLOW
}
concluída
${
NC
}
"
echo
echo
PROJSVNG
=
"
${
PROJSVN
}
.git"
PROJSVNC
=
"
${
PROJSVN
}
_temp"
mkdir
$PROJSVNG
cd
$PROJSVNG
/
git init
--bare
git symbolic-ref HEAD refs/heads/trunk
cd
..
cd
$PATHGIT
/
git remote add bare ../
$PROJSVNG
git config remote.bare.push
'refs/remotes/*:refs/heads/*'
git push bare
cd
..
cd
$PROJSVNG
/
git branch
-m
trunk master
printf
"
${
YELLOW
}
3/3-Passo: Regerando referências das tags e branchs para o git
${
NC
}
"
echo
git
for
-each-ref
--format
=
'%(refname)'
refs/heads/tags |
# para cada branch em refs/heads/tags
cut
-d
/
-f
4 |
while
read
ref
do
git tag
"
$ref
"
"refs/heads/tags/
$ref
"
;
# cria-se a tag a partir do branch
git branch
-D
"tags/
$ref
"
;
# remove-se a tag
done
echo
cd
..
mkdir
$PROJSVNC
cd
$PROJSVNC
/
git clone
--bare
../
$PROJSVNG
cd
$PROJSVNG
/
git remote add novo
$NEWURLGIT
echo
$PASSWLDAP
| git push
--all
novo
echo
$PASSWLDAP
| git push
--tags
novo
echo
printf
"
${
YELLOW
}
#### MIGRAÇÃO DO SVN PARA O GITLAB CONCLUIDA ####
${
NC
}
"
echo
echo
\ No newline at end of file
git_carga_conf.sh
0 → 100644
View file @
c1c8a920
#!/usr/bin/env bash
# Responda as pergundas apos as variáveis
#
# 1 - Qual a url até a raiz do seu projeto no svn? (ALTERE SE FOR DIFERENTE)
URLSVN
=
'http://svn.dds.prodepa.gov.br/private'
#
# 2 - Qual o nome do projeto que você quer migrar do SVN para o GITLAB?
PROJSVN
=
'ccg_inscricao'
#
# 3 Cole aqui a URL .git do novo projeto no GITLAB sem https ou ssh
URLGIT
=
'gitlab.prodepa.pa.gov.br/dds/ccg/inscricao/inscricao.git'
#
\ No newline at end of file
gitcarga.sh
View file @
c1c8a920
...
...
@@ -47,19 +47,20 @@ do
break
fi
done
while
:
;
do
echo
"Precisamos obter URL da raiz do seu SVN! "
read
-p
'Qual a URL completa até a raiz do seu SVN ? '
URLSVN
URLSVN
=
'http://svn.dds.prodepa.gov.br/private'
#while : ;
#do
# echo "Precisamos obter URL da raiz do seu SVN! "
# read -p 'Qual a URL completa até a raiz do seu SVN ? ' URLSVN
#
if
[
-z
$URLSVN
]
;
then
echo
"A URL do SVN deve ser informado!"
continue
else
break
fi
done
#
if [ -z $URLSVN ];
#
then
#
echo "A URL do SVN deve ser informado!"
#
continue
#
else
#
break
#
fi
#
done
while
:
;
do
echo
...
...
@@ -119,49 +120,53 @@ do
break
fi
done
while
:
;
do
echo
echo
"O nome do projeto SVN pode ser criado com outro nome no GIT. "
read
-p
'Qual o nome do diretorio do projeto .git '
PATHGIT
if
[
-z
$PATHGIT
]
;
then
echo
"Nome do direório do projeto .git deve ser informado"
continue
else
printf
"
${
RED
}
$PATHGIT
${
NC
}
"
echo
read
-p
'Está correta o nome do diretorio do projeto .git? s(sim) '
SIM1
if
[
$SIM1
=
"s"
]
;
then
break
else
continue
fi
fi
done
#
PATHGIT
=
"
${
PROJSVN
}
_GIT"
#
#while : ;
#do
# echo
# echo "O nome do projeto SVN pode ser criado com outro nome no GIT. "
# read -p 'Qual o nome do diretorio do projeto .git ' PATHGIT
#
# if [ -z $PATHGIT ];
# then
# echo "Nome do direório do projeto .git deve ser informado"
# continue
# else
# printf "${RED}$PATHGIT${NC}"
# echo
# read -p 'Está correta o nome do diretorio do projeto .git? s(sim) ' SIM1
# if [ $SIM1 = "s" ];
# then
# break
# else
# continue
# fi
# fi
#done
echo
echo
printf
"
${
YELLOW
}
1/3-Passo: Verificar assinaturas de commits dos usuários no projeto SVN
${
NC
}
"
echo
echo
$PASSWLDAP
|
sudo
-S
java
-jar
~/svn-migration-scripts.jar authors
$URLPROJSVN
$USERLDAP
$PASSWLDAP
>
authors_
$PROJSVN
.txt
sudo
java
-jar
~/svn-migration-scripts.jar authors
$URLPROJSVN
$USERLDAP
$PASSWLDAP
>
authors_
$PROJSVN
.txt
#
while
:
;
do
echo
"Para fazer um relacionamento dos usuarios do SVN com usuarios do GIT, "
echo
"informe só o dominio dos endereços de email dos usuarios de sua empresa! "
echo
" Ex: nome.usuario@mycompany.com -- SERÁ SUBISTITUIDO POR --> nome.usuario@dominio.empresa.com.br "
read
-p
'Qual o dominio dos usuarios de email da sua empresa? '
DOMSVNGIT
DOMSVNGIT
=
'prodepa.pa.gov.br'
#while : ;
#do
# echo "Para fazer um relacionamento dos usuarios do SVN com usuarios do GIT, "
# echo "informe só o dominio dos endereços de email dos usuarios de sua empresa! "
# echo " Ex: nome.usuario@mycompany.com -- SERÁ SUBISTITUIDO POR --> nome.usuario@dominio.empresa.com.br "
# read -p 'Qual o dominio dos usuarios de email da sua empresa? ' DOMSVNGIT
#
if
[
-z
$DOMSVNGIT
]
;
then
echo
"O Dominio do GIT deve ser informado!"
continue
else
break
fi
done
#
if [ -z $DOMSVNGIT ];
#
then
#
echo "O Dominio do GIT deve ser informado!"
#
continue
#
else
#
break
#
fi
#
done
#
sed
-i
"s'mycompany.com'
$DOMSVNGIT
'g"
authors_
$PROJSVN
.txt
echo
...
...
@@ -171,7 +176,7 @@ echo
echo
printf
"
${
YELLOW
}
2/3-Passo: Importando projeto do SVN:
${
RED
}
$URLPROJSVN
${
NC
}
"
echo
git svn clone
--no-metadata
--stdlayout
--authors-file
=
authors_
$PROJSVN
.txt
--prefix
=
""
$URLPROJSVN
$PATHGIT
echo
$PASSWLDAP
| git svn clone
--no-metadata
--username
$USERLDAP
--stdlayout
--authors-file
=
authors_
$PROJSVN
.txt
--prefix
=
""
$URLPROJSVN
$PATHGIT
echo
echo
printf
"
${
YELLOW
}
Importação do projeto
${
RED
}
$PROJSVN
${
NC
}
${
YELLOW
}
concluída
${
NC
}
"
...
...
@@ -207,8 +212,8 @@ cd $PROJSVNC/
git clone
--bare
../
$PROJSVNG
cd
$PROJSVNG
/
git remote add novo
$NEWURLGIT
git push
--all
novo
git push
--tags
novo
echo
$PASSWLDAP
|
git push
--all
novo
echo
$PASSWLDAP
|
git push
--tags
novo
echo
printf
"
${
YELLOW
}
#### MIGRAÇÃO DO SVN PARA O GITLAB CONCLUIDA ####
${
NC
}
"
echo
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment