Uso de git para el mantenimiento de parches locales o públicos

Iñaki Arenaza
Iñaki ArenazaLecturer/Researcher at Mondragon Unibertsitatea
Uso de git para el mantenimiento  de parches locales o públicos Iñaki Arenaza [email_address] [email_address] (Creative Commons Attribution-Share Alike 2.5 Spain License) http://tinyurl.com/5q2k9f
Contenidos ,[object Object]
Creación de los diferentes repositorios.
Trabajo con ramas.
Operaciones en el área de trabajo.
Creación de parches y series de parches.
Exportación de cambios a cvs.moodle.org.
Premisas del modelo de trabajo Repositorio 'compartido' de referencia
Premisas del modelo de trabajo A provechar el repositorio de git.moodle.org No usar 'git clone' para la importación desde git.moodle.org
Premisas del modelo de trabajo Repositorio compartido sólo con ramas locales
Premisas del modelo de trabajo Desarrollo siempre en las ramas locales
Premisas del modelo de trabajo Ramas estándar sólo en repositorios de los  desarrolladores
cvs.moodle.org git.moodle.org pasarela de importación de cvs a git  @moodle.org repositorio compartido @mondragon.edu copia de trabajo + repositorio desarrollador git-remote + git-push git-fetch git-push git-pull git-fetch git-push git-pull git-remote + git-fetch git-fetch / git-pull git-clone git-clone git-remote + git-fetch git-fetch / git-pull git-fetch git-push git-pull
Creación repositorio compartido Crear repositorio desarrollador  git config --global user.name 'Desarrollador-1' git config --global user.email ,[object Object],cd /ruta/repositorio/desarrollador mkdir desarrollador-1.git cd desarrollador-1.git git init
Creación repositorio compartido Importar repositorio de moodle.org git remote add -t  cvshead  -t  MOODLE_19_STABLE  -m cvshead moodle-org  git ://git.moodle.org/moodle.git git fetch moodle-org
Creación repositorio compartido Ramas locales de seguimiento (opcional) git branch --track cvshead  moodle-org /cvshead git branch --track MOODLE_19_STABLE moodle-org /MOODLE_19_STABLE
Creación repositorio compartido Ramas locales de trabajo git branch mdl19-ldap-refactor moodle-org /MOODLE_19_STABLE
Creación repositorio compartido Crear repositorio compartido cd /ruta/repositorio/compartido mkdir compartido.git cd compartido.git git --bare init --shared=all chmod g=rwxs,o=rx . sudo chgrp -R git-moodle .
Creación repositorio compartido Enviar rama local al repositorio compartido cd /ruta/repositorio/desarrollador/desarrollador-1.git git remote add compartido /ruta/repositorio/compartido/compartido.git git push compartido + mdl19-ldap-refactor:mdl19-ldap-refactor
Creación repositorio compartido Configurar rama local para hacer  pull  desde repositorio compartido git config branch.mdl19-ldap-refactor.remote compartido git config branch.mdl19-ldap-refactor.merge refs/heads/mdl19-ldap-refactor
Creación repo nuevo desarrollador Clonar repositorio compartido git config --global user.name 'Desarrollador-2' git config --global user.email 'desarrollador-2@mondragon.edu' cd /ruta/repositorio/desarrollador git clone -o compartido /ruta/repositorio/compartido/compartido.git desarrollador-2.git
Creación repo nuevo desarrollador Importar ramas estándar (opcional) cd desarollador-2.git git remote add -t  cvshead  -t  MOODLE_19_STABLE  -m cvshead moodle-org git://git.moodle.org/moodle.git git fetch moodle-org
Creación repo nuevo desarrollador Ramas locales de trabajo git branch mdl19-ldap-refactor compartido /mdl19-ldap-refactor git checkout mdl19-ldap-refactor
Operaciones en el área de trabajo ,[object Object],[object Object],[object Object],[object Object],[object Object],git branch mdl19-nested-groups mdl19-ldap-refactor git checkout mdl19-nested-groups git branch git status git add fichero1 fichero2 ... git rm fichero3 fichero4 ...
Operaciones en el área de trabajo ,[object Object],[object Object],[object Object],[object Object],[object Object],git diff git diff HEAD git diff  MOODLE_19_STABLE git diff  MOODLE_19_STABLE .. mdl19-ldap-refactor git commit git push compartido git fetch compartido git pull compartido
Operaciones en el área de trabajo ,[object Object],[object Object],[object Object],[object Object],git push compartido +mdl19-nested-groups:mdl19-nested-groups git config branch.mdl19-nested-groups.remote compartido git config branch.mdl19-nested-groups.merge refs/heads/mdl19-nested-groups git fetch compartido git branch mdl19-enrol-database-refactor compartido/mdl19-enrol-database-refactor gitk -n 50 mdl19-nested-groups
Creación de parches y series Creación de parches monolíticos git checkout mdl19-enrol-database-refactor git diff  MOODLE_19_STABLE  > mdl19-enrol-database-refactor.diff
Creación de parches y series Creación de serie de parches git checkout mdl19-enrol-database-refactor git format-patch -o  serie-enrol-db-refactor  MOODLE_19_STABLE
Exportación directa a cvs.moodle.org Preparar entorno de trabajo y buscar cambio a aplicar cd /ruta/copia/trabajo/CVS/con/rama/adecuada export GIT_DIR=/ruta/repo/desa-1.git/.git ...obtener SHA1 del commit a exportar con  gitk, git log o similares; Supongamos que hemos cambiado el fichero ' auth/ldap/auth.php ' y el SHA1 del commit es: 4e976e4114beea9f82420bf0c66edb2494d0272a
Exportación directa a cvs.moodle.org Aplicar el cambio git cvsexporcommit -p -v 4e976e4114beea9f82420bf0c66edb2494d0272a
Exportación directa a cvs.moodle.org Verificar los cambios y hacer commit en CVS ...verificar los cambios en la copia ...de trabajo de CVS y luego ejecutar: cvs commit -F .msg ' auth/ldap/auth.php '
Agradecimientos ,[object Object]
1 of 32

Recommended

Git & GitHub Part II by
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part IIMax Rodriguez
41 views28 slides
Introducción a GIT by
Introducción a GITIntroducción a GIT
Introducción a GITmaxfontana90
503 views44 slides
Introducción a git y git hub by
Introducción a git y git hubIntroducción a git y git hub
Introducción a git y git hubMiguel Ascanio Gómez
995 views51 slides
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco by
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoAntonio Luque Bravo
695 views12 slides
Uso de git (Cursos de e-ghost 2011) by
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Iñaki Arenaza
1.6K views57 slides
Git y drupal by
Git y drupalGit y drupal
Git y drupalJuampy NR
1.3K views15 slides

More Related Content

What's hot

Más allá de Git add/commit/push by
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/pushAlexis Lopez
1.4K views27 slides
Hg mini manual by
Hg mini manualHg mini manual
Hg mini manualDemián Gutierrez
1.6K views3 slides
Introducción al uso Git y GitHub para trabajo colaborativo by
Introducción al uso Git y GitHub para trabajo colaborativoIntroducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoJuan J. Merelo
4.7K views24 slides
Git / Guía Básica by
Git / Guía BásicaGit / Guía Básica
Git / Guía BásicaJuan Victor Minaya León
2.2K views24 slides
Repositorio concesionariocochesfloresgomezrobertocarlos by
Repositorio concesionariocochesfloresgomezrobertocarlosRepositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlosRoberto Carlos Flores Gomez
223 views14 slides
Cheat-Sheet Git Commands by
Cheat-Sheet Git CommandsCheat-Sheet Git Commands
Cheat-Sheet Git CommandsCristian Omar Jaramillo Méndez
825 views2 slides

What's hot(20)

Más allá de Git add/commit/push by Alexis Lopez
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
Alexis Lopez1.4K views
Introducción al uso Git y GitHub para trabajo colaborativo by Juan J. Merelo
Introducción al uso Git y GitHub para trabajo colaborativoIntroducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativo
Juan J. Merelo4.7K views
Git: Aprovecha las ventajas del control de versiones distribuido by Iñaki Arenaza
Git: Aprovecha las ventajas del control de versiones distribuidoGit: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuido
Iñaki Arenaza2.3K views
Curso: Publicando mi proyecto web en Github by Carlos Huamaní
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
Carlos Huamaní1K views
Control de versiones con Git y Github by guest638090
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Github
guest6380907.6K views
Mejora tu productividad con git by ch1l3no
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
ch1l3no148 views
Taller breve de introduccion a Git by Mario IC
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
Mario IC1.3K views
El git nuestro de cada dia by Alan Descoins
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
Alan Descoins1.2K views
05 intro-git-github-heroku-v4 by fyomaira
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
fyomaira456 views
Drupal 8: deploy capistrano y gestión de la configuración by Biko
Drupal 8: deploy capistrano y gestión de la configuraciónDrupal 8: deploy capistrano y gestión de la configuración
Drupal 8: deploy capistrano y gestión de la configuración
Biko632 views

Similar to Uso de git para el mantenimiento de parches locales o públicos

Manual para usuarios de Git @patxiredes.pdf by
Manual para usuarios de Git @patxiredes.pdfManual para usuarios de Git @patxiredes.pdf
Manual para usuarios de Git @patxiredes.pdfCarlosJurado61
5 views40 slides
The Gift of Git [Español: La Palabra de Git] by
The Gift of Git [Español: La Palabra de Git]The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]Alfonso Felipe Cabargas Madrid
733 views26 slides
Git + Github - Betabeers Córdoba XII by
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIquaip
1K views50 slides
Git Primeros pasos by
Git Primeros pasosGit Primeros pasos
Git Primeros pasosJesús Amieiro
371 views55 slides
Introducción a GIT by
Introducción a GITIntroducción a GIT
Introducción a GITJose Emilio Labra Gayo
2.7K views44 slides
Introducción a git by
Introducción a gitIntroducción a git
Introducción a gitMariano Kfuri
546 views23 slides

Similar to Uso de git para el mantenimiento de parches locales o públicos(20)

Manual para usuarios de Git @patxiredes.pdf by CarlosJurado61
Manual para usuarios de Git @patxiredes.pdfManual para usuarios de Git @patxiredes.pdf
Manual para usuarios de Git @patxiredes.pdf
CarlosJurado615 views
Git + Github - Betabeers Córdoba XII by quaip
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
quaip1K views
Flujo de trabajo básico con git by Jan Sanchez
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con git
Jan Sanchez3.1K views
Git para no gitters by Rojomorgan
Git para no gittersGit para no gitters
Git para no gitters
Rojomorgan563 views
Git para-principiantes by nscoder_mad
Git para-principiantesGit para-principiantes
Git para-principiantes
nscoder_mad2.4K views
Versionando proyectos con Git, desarrollo de software colaborativo by Hernán Aguilera
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativo
Hernán Aguilera733 views
WorkShop: Introducción a GIT by Keopx
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
Keopx 2.3K views
Taller Git en la URJC by sidelab
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
sidelab1.3K views
Charla de Introducción a Git by Manuel Martín
Charla de Introducción a GitCharla de Introducción a Git
Charla de Introducción a Git
Manuel Martín653 views
Introducción a git by Keopx
Introducción a gitIntroducción a git
Introducción a git
Keopx 1.7K views
Git by humusb
GitGit
Git
humusb170 views

More from Iñaki Arenaza

Las claves para optimizar la seguridad de tu sitio WordPress by
Las claves para optimizar la seguridad de tu sitio WordPressLas claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPressIñaki Arenaza
621 views46 slides
10 Claves para mejorar la seguridad de tu WP by
10 Claves para mejorar la seguridad de tu WP10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WPIñaki Arenaza
676 views14 slides
Forjas y repositorios de código en la nube. Euskal Encounter 2015 by
Forjas y repositorios de código en la nube. Euskal Encounter 2015Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015Iñaki Arenaza
937 views51 slides
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools by
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsIñaki Arenaza
5.7K views92 slides
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano by
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusanoMahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusanoIñaki Arenaza
1K views17 slides
Forjas de Software: qué son y para que sirven by
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenIñaki Arenaza
719 views45 slides

More from Iñaki Arenaza(19)

Las claves para optimizar la seguridad de tu sitio WordPress by Iñaki Arenaza
Las claves para optimizar la seguridad de tu sitio WordPressLas claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPress
Iñaki Arenaza621 views
10 Claves para mejorar la seguridad de tu WP by Iñaki Arenaza
10 Claves para mejorar la seguridad de tu WP10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WP
Iñaki Arenaza676 views
Forjas y repositorios de código en la nube. Euskal Encounter 2015 by Iñaki Arenaza
Forjas y repositorios de código en la nube. Euskal Encounter 2015Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015
Iñaki Arenaza937 views
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools by Iñaki Arenaza
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Iñaki Arenaza5.7K views
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano by Iñaki Arenaza
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusanoMahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
Iñaki Arenaza1K views
Forjas de Software: qué son y para que sirven by Iñaki Arenaza
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirven
Iñaki Arenaza719 views
Internacionalización con WordPress (WordPress Euskadi 2014) by Iñaki Arenaza
Internacionalización con WordPress (WordPress Euskadi 2014)Internacionalización con WordPress (WordPress Euskadi 2014)
Internacionalización con WordPress (WordPress Euskadi 2014)
Iñaki Arenaza1.2K views
Móntate un sitio web completo con WordPress en 4 horas by Iñaki Arenaza
Móntate un sitio web completo con WordPress en 4 horasMóntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horas
Iñaki Arenaza6K views
Buddypress: Social Networking, in a Box by Iñaki Arenaza
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
Iñaki Arenaza2.4K views
Monta WordPress en tu empresa by Iñaki Arenaza
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresa
Iñaki Arenaza2.4K views
Mahara y Moodle - EDUSOL 2011 by Iñaki Arenaza
Mahara y Moodle - EDUSOL 2011Mahara y Moodle - EDUSOL 2011
Mahara y Moodle - EDUSOL 2011
Iñaki Arenaza1.6K views
Integración de Mahara con Moodle (MoodleMoot España 2010) by Iñaki Arenaza
Integración de Mahara con Moodle (MoodleMoot España 2010)Integración de Mahara con Moodle (MoodleMoot España 2010)
Integración de Mahara con Moodle (MoodleMoot España 2010)
Iñaki Arenaza8.4K views
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010) by Iñaki Arenaza
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)
Iñaki Arenaza1.3K views
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source by Iñaki Arenaza
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open sourceMoodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source
Iñaki Arenaza3.8K views
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008) by Iñaki Arenaza
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)
Iñaki Arenaza1.8K views

Recently uploaded

Trabajo de tecnología.docx by
Trabajo de tecnología.docxTrabajo de tecnología.docx
Trabajo de tecnología.docxDannaSofaMuoz
8 views8 slides
PyGoat Analizando la seguridad en aplicaciones Django.pdf by
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfJose Manuel Ortega Candel
5 views46 slides
excelavanzado1-231020003159-be608ddc.pdf by
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdfsarahloradorado
11 views23 slides
excelavanzado1-231020003159-be608ddc.pdf by
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdforianaisabellaramire
16 views23 slides
Taller de Electricidad y Electrónica.docx by
Taller de Electricidad y Electrónica.docxTaller de Electricidad y Electrónica.docx
Taller de Electricidad y Electrónica.docxFranksamuel11
7 views15 slides
PRESENTACION DE FC.pptx by
PRESENTACION DE FC.pptxPRESENTACION DE FC.pptx
PRESENTACION DE FC.pptxGabrielRivas75
5 views5 slides

Recently uploaded(20)

excelavanzado1-231020003159-be608ddc.pdf by sarahloradorado
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
sarahloradorado11 views
Taller de Electricidad y Electrónica.docx by Franksamuel11
Taller de Electricidad y Electrónica.docxTaller de Electricidad y Electrónica.docx
Taller de Electricidad y Electrónica.docx
Franksamuel117 views
programacion orientada a objetos_sebastian segura barreto.pptx by sebastiansegura25
programacion orientada a objetos_sebastian segura barreto.pptxprogramacion orientada a objetos_sebastian segura barreto.pptx
programacion orientada a objetos_sebastian segura barreto.pptx
tecnologaeinformtica-231124115719-3a836080.pdf by MaraJos722801
tecnologaeinformtica-231124115719-3a836080.pdftecnologaeinformtica-231124115719-3a836080.pdf
tecnologaeinformtica-231124115719-3a836080.pdf
MaraJos72280110 views
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad... by edepjuanmurillo
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...
edepjuanmurillo5 views
Recusos Multimedia y Wed 2.0.pptx by henryruidiaz
Recusos Multimedia  y Wed 2.0.pptxRecusos Multimedia  y Wed 2.0.pptx
Recusos Multimedia y Wed 2.0.pptx
henryruidiaz5 views
Fundamentos De Electricidad y Electrónica equipo 5.pdf by CamilaCordoba30
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
CamilaCordoba3015 views
Basura electronica.docx by MissPotato2
Basura electronica.docxBasura electronica.docx
Basura electronica.docx
MissPotato28 views
Rol de la ciencia y tecnología en la dinámica social.pdf by wilfredomarmolteran
Rol de la ciencia y tecnología en la dinámica social.pdfRol de la ciencia y tecnología en la dinámica social.pdf
Rol de la ciencia y tecnología en la dinámica social.pdf
Excel avanzado.pdf by fspro99
Excel avanzado.pdfExcel avanzado.pdf
Excel avanzado.pdf
fspro998 views
Tarea15.pptx by illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir7 views
Fundamentos De Electricidad y Electrónica equipo 5.pdf by coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria13 views

Uso de git para el mantenimiento de parches locales o públicos

  • 1. Uso de git para el mantenimiento de parches locales o públicos Iñaki Arenaza [email_address] [email_address] (Creative Commons Attribution-Share Alike 2.5 Spain License) http://tinyurl.com/5q2k9f
  • 2.
  • 3. Creación de los diferentes repositorios.
  • 5. Operaciones en el área de trabajo.
  • 6. Creación de parches y series de parches.
  • 7. Exportación de cambios a cvs.moodle.org.
  • 8. Premisas del modelo de trabajo Repositorio 'compartido' de referencia
  • 9. Premisas del modelo de trabajo A provechar el repositorio de git.moodle.org No usar 'git clone' para la importación desde git.moodle.org
  • 10. Premisas del modelo de trabajo Repositorio compartido sólo con ramas locales
  • 11. Premisas del modelo de trabajo Desarrollo siempre en las ramas locales
  • 12. Premisas del modelo de trabajo Ramas estándar sólo en repositorios de los desarrolladores
  • 13. cvs.moodle.org git.moodle.org pasarela de importación de cvs a git @moodle.org repositorio compartido @mondragon.edu copia de trabajo + repositorio desarrollador git-remote + git-push git-fetch git-push git-pull git-fetch git-push git-pull git-remote + git-fetch git-fetch / git-pull git-clone git-clone git-remote + git-fetch git-fetch / git-pull git-fetch git-push git-pull
  • 14.
  • 15. Creación repositorio compartido Importar repositorio de moodle.org git remote add -t cvshead -t MOODLE_19_STABLE -m cvshead moodle-org git ://git.moodle.org/moodle.git git fetch moodle-org
  • 16. Creación repositorio compartido Ramas locales de seguimiento (opcional) git branch --track cvshead moodle-org /cvshead git branch --track MOODLE_19_STABLE moodle-org /MOODLE_19_STABLE
  • 17. Creación repositorio compartido Ramas locales de trabajo git branch mdl19-ldap-refactor moodle-org /MOODLE_19_STABLE
  • 18. Creación repositorio compartido Crear repositorio compartido cd /ruta/repositorio/compartido mkdir compartido.git cd compartido.git git --bare init --shared=all chmod g=rwxs,o=rx . sudo chgrp -R git-moodle .
  • 19. Creación repositorio compartido Enviar rama local al repositorio compartido cd /ruta/repositorio/desarrollador/desarrollador-1.git git remote add compartido /ruta/repositorio/compartido/compartido.git git push compartido + mdl19-ldap-refactor:mdl19-ldap-refactor
  • 20. Creación repositorio compartido Configurar rama local para hacer pull desde repositorio compartido git config branch.mdl19-ldap-refactor.remote compartido git config branch.mdl19-ldap-refactor.merge refs/heads/mdl19-ldap-refactor
  • 21. Creación repo nuevo desarrollador Clonar repositorio compartido git config --global user.name 'Desarrollador-2' git config --global user.email 'desarrollador-2@mondragon.edu' cd /ruta/repositorio/desarrollador git clone -o compartido /ruta/repositorio/compartido/compartido.git desarrollador-2.git
  • 22. Creación repo nuevo desarrollador Importar ramas estándar (opcional) cd desarollador-2.git git remote add -t cvshead -t MOODLE_19_STABLE -m cvshead moodle-org git://git.moodle.org/moodle.git git fetch moodle-org
  • 23. Creación repo nuevo desarrollador Ramas locales de trabajo git branch mdl19-ldap-refactor compartido /mdl19-ldap-refactor git checkout mdl19-ldap-refactor
  • 24.
  • 25.
  • 26.
  • 27. Creación de parches y series Creación de parches monolíticos git checkout mdl19-enrol-database-refactor git diff MOODLE_19_STABLE > mdl19-enrol-database-refactor.diff
  • 28. Creación de parches y series Creación de serie de parches git checkout mdl19-enrol-database-refactor git format-patch -o serie-enrol-db-refactor MOODLE_19_STABLE
  • 29. Exportación directa a cvs.moodle.org Preparar entorno de trabajo y buscar cambio a aplicar cd /ruta/copia/trabajo/CVS/con/rama/adecuada export GIT_DIR=/ruta/repo/desa-1.git/.git ...obtener SHA1 del commit a exportar con gitk, git log o similares; Supongamos que hemos cambiado el fichero ' auth/ldap/auth.php ' y el SHA1 del commit es: 4e976e4114beea9f82420bf0c66edb2494d0272a
  • 30. Exportación directa a cvs.moodle.org Aplicar el cambio git cvsexporcommit -p -v 4e976e4114beea9f82420bf0c66edb2494d0272a
  • 31. Exportación directa a cvs.moodle.org Verificar los cambios y hacer commit en CVS ...verificar los cambios en la copia ...de trabajo de CVS y luego ejecutar: cvs commit -F .msg ' auth/ldap/auth.php '
  • 32.
  • 34.
  • 35. El artículo completo: http://tinyurl.com/5q2k9f http://tinyurl.com/4eyj3s
  • 36.
  • 37.
  • 38.
  • 39. Limpieza del historial de una rama IMPORTANTE : No re-basar los cambios de una rama si ésta ha sido publicada en otro repositorio.
  • 40. Limpieza del historial de una rama Sólo se puede aplicar a la rama activa git checkout mdl19-enrol-database-refactor git rebase MOODLE_19_STABLE
  • 41. Limpieza del historial de una rama Si hay conflictos, solucionar a mano, y decirle a git qué hemos arreglado git update-index enrol/database/config.html enrol/database/enrol.php git rebase --continue
  • 42. Limpieza del historial de una rama Podemos abortar en todo momento git rebase --abort