taller de git - clase 3 - migración de svn a git · git filter branch prune empty d...
Post on 20-May-2020
8 Views
Preview:
TRANSCRIPT
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Taller de GitClase 3 - Migración de SVN a Git
Fernando López
LINTIFacultad de Informática
Universidad Nacional de la Plata
13 de Noviembre de 2013
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Indice
1 Introducción
2 Esquemas de SVNEsquema desprolijoEsquema recomendado
3 Corregir problemasOtros esquemas
4 Licencia
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Links
• Tema de la clase
• Proyectos SVN a migrar
• Grupo Lihuen en GitLab.linti
• Todo sobre Git en la wiki de Lihuen
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Introducción
• Instalar git-svn:apt-get install git-svn
• Repos Git a partir de SVN.• Se conservan commits.• Subiremos esos repos a un remoto.• Grupo de GitLab: lihuen.
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Introducción
• Instalar git-svn:apt-get install git-svn
• Repos Git a partir de SVN.• Se conservan commits.• Subiremos esos repos a un remoto.• Grupo de GitLab: lihuen.
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Introducción
• Instalar git-svn:apt-get install git-svn
• Repos Git a partir de SVN.• Se conservan commits.• Subiremos esos repos a un remoto.• Grupo de GitLab: lihuen.
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Introducción
• Instalar git-svn:apt-get install git-svn
• Repos Git a partir de SVN.• Se conservan commits.• Subiremos esos repos a un remoto.• Grupo de GitLab: lihuen.
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Introducción
• Instalar git-svn:apt-get install git-svn
• Repos Git a partir de SVN.• Se conservan commits.• Subiremos esos repos a un remoto.• Grupo de GitLab: lihuen.
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNEsquema desprolijo
• ¡Todo suelto en un directorio!• No se recomienda.• Pero curiosamente...• Por ejemplo script-utils
• Para convertirlo a git:g i t svn c l o n e h t t p s : // v e r s i o n a d o r [ . . . ] / s c r i p t −u t i l s
• Para subirlo:cd s c r i p t −u t i l sg i t remote add o r i g i n \
g i t @ g i t l a b [ . . . ] : l i h u e n / s c r i p t −u t i l s . g i tg i t push −u o r i g i n master
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNEsquema desprolijo
• ¡Todo suelto en un directorio!• No se recomienda.• Pero curiosamente...• Por ejemplo script-utils
• Para convertirlo a git:g i t svn c l o n e h t t p s : // v e r s i o n a d o r [ . . . ] / s c r i p t −u t i l s
• Para subirlo:cd s c r i p t −u t i l sg i t remote add o r i g i n \
g i t @ g i t l a b [ . . . ] : l i h u e n / s c r i p t −u t i l s . g i tg i t push −u o r i g i n master
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNEsquema desprolijo
• ¡Todo suelto en un directorio!• No se recomienda.• Pero curiosamente...• Por ejemplo script-utils
• Para convertirlo a git:g i t svn c l o n e h t t p s : // v e r s i o n a d o r [ . . . ] / s c r i p t −u t i l s
• Para subirlo:cd s c r i p t −u t i l sg i t remote add o r i g i n \
g i t @ g i t l a b [ . . . ] : l i h u e n / s c r i p t −u t i l s . g i tg i t push −u o r i g i n master
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNEsquema desprolijo
• ¡Todo suelto en un directorio!• No se recomienda.• Pero curiosamente...• Por ejemplo script-utils
• Para convertirlo a git:g i t svn c l o n e h t t p s : // v e r s i o n a d o r [ . . . ] / s c r i p t −u t i l s
• Para subirlo:cd s c r i p t −u t i l sg i t remote add o r i g i n \
g i t @ g i t l a b [ . . . ] : l i h u e n / s c r i p t −u t i l s . g i tg i t push −u o r i g i n master
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNEsquema desprolijo
• ¡Todo suelto en un directorio!• No se recomienda.• Pero curiosamente...• Por ejemplo script-utils
• Para convertirlo a git:g i t svn c l o n e h t t p s : // v e r s i o n a d o r [ . . . ] / s c r i p t −u t i l s
• Para subirlo:cd s c r i p t −u t i l sg i t remote add o r i g i n \
g i t @ g i t l a b [ . . . ] : l i h u e n / s c r i p t −u t i l s . g i tg i t push −u o r i g i n master
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNEsquema desprolijo
• ¡Todo suelto en un directorio!• No se recomienda.• Pero curiosamente...• Por ejemplo script-utils
• Para convertirlo a git:g i t svn c l o n e h t t p s : // v e r s i o n a d o r [ . . . ] / s c r i p t −u t i l s
• Para subirlo:cd s c r i p t −u t i l sg i t remote add o r i g i n \
g i t @ g i t l a b [ . . . ] : l i h u e n / s c r i p t −u t i l s . g i tg i t push −u o r i g i n master
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNEsquema recomendado
Se recomienda tener 3 directorios por proyecto:• trunk → código fuente suelto.• branches → versiones divergentes.• tags → versiones publicadas.
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNlihuenconfig
Un ejemplo es lihuenconfig:
lihuenconfig|-- branches| `-- lihuenconfig-chanchon|-- tags| |-- lihuenconfig-1.0-20071026| |-- lihuenconfig-1.0-20080313| |-- lihuenconfig-3.0-20100514| |-- lihuenconfig-3.4| `-- lihuenconfig_4.01-5`-- trunk
|-- debian|-- lihuenconfig`-- touchpads
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNMigrar con branches y tags
• git-svn soporta este último esquema.• De forma limitada...• Usaremos el script:
script-utils/migrar-svn-a-git.sh .
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNMigrar con branches y tags
• git-svn soporta este último esquema.• De forma limitada...• Usaremos el script:
script-utils/migrar-svn-a-git.sh .
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Esquemas de SVNMigrar con branches y tags
• git-svn soporta este último esquema.• De forma limitada...• Usaremos el script:
script-utils/migrar-svn-a-git.sh .
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Corregir problemas
Git no versiona dirs vacíos:f i n d −not −path " ∗/ . g i t ∗" −t ype d | wh i l e r ead d i r ; doi f [ −z "$ ( l s ␣" $ d i r " ) " ] ; then
touch " $ d i r / . g i t i g n o r e "g i t add " $ d i r "
f idone
Buscar archivos .iso en la historia:
g i t l o l a −−name−s t a t u s | g rep \\ . i s o
Eliminar oops.iso de la historia:g i t f i l t e r −branch −−prune−empty −d /dev/shm/ s c r a t c h \−−i ndex− f i l t e r " g i t ␣rm␣−−cached ␣−f ␣−−i g no r e−unmatch␣ oops . i s o " \−−tag−name− f i l t e r ca t −− −−a l l
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Corregir problemas
Git no versiona dirs vacíos:f i n d −not −path " ∗/ . g i t ∗" −t ype d | wh i l e r ead d i r ; doi f [ −z "$ ( l s ␣" $ d i r " ) " ] ; then
touch " $ d i r / . g i t i g n o r e "g i t add " $ d i r "
f idone
Buscar archivos .iso en la historia:
g i t l o l a −−name−s t a t u s | g rep \\ . i s o
Eliminar oops.iso de la historia:g i t f i l t e r −branch −−prune−empty −d /dev/shm/ s c r a t c h \−−i ndex− f i l t e r " g i t ␣rm␣−−cached ␣−f ␣−−i g no r e−unmatch␣ oops . i s o " \−−tag−name− f i l t e r ca t −− −−a l l
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Corregir problemas
Git no versiona dirs vacíos:f i n d −not −path " ∗/ . g i t ∗" −t ype d | wh i l e r ead d i r ; doi f [ −z "$ ( l s ␣" $ d i r " ) " ] ; then
touch " $ d i r / . g i t i g n o r e "g i t add " $ d i r "
f idone
Buscar archivos .iso en la historia:
g i t l o l a −−name−s t a t u s | g rep \\ . i s o
Eliminar oops.iso de la historia:g i t f i l t e r −branch −−prune−empty −d /dev/shm/ s c r a t c h \−−i ndex− f i l t e r " g i t ␣rm␣−−cached ␣−f ␣−−i g no r e−unmatch␣ oops . i s o " \−−tag−name− f i l t e r ca t −− −−a l l
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Otros esquemas
• Adaptar el repo original a alguno de los esquemasdetallados usando Subversion.
• Una vez adaptado usar git-svn .
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Otros esquemas
• Adaptar el repo original a alguno de los esquemasdetallados usando Subversion.
• Una vez adaptado usar git-svn .
Fernando López Taller de Git
Taller de Git
FernandoLópez
Introducción
Esquemas deSVNEsquemadesprolijoEsquemarecomendado
CorregirproblemasOtrosesquemas
Licencia
Licencia
Fuentes:• http://git-scm.com/book
• http://git-scm.com
• http://nvie.com/posts/a-successful-git-branching-model/
• https://wiki.diasporafoundation.org/Git_Workflow#Branching_model
• http://lihuen.linti.unlp.edu.ar/index.php?title=Workflow_Git/SVN
Taller de Git por Fernando López (LINTI-UNLP) se encuentrabajo una Licencia Creative Commons Atribución-CompartirIgual
3.0 Unported.
Fernando López Taller de Git
top related