taller de git - clase 3 - migración de svn a git · git filter branch prune empty d...

Post on 20-May-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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