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
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 '
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