Lunes, 23 Julio 2012 11:07

Manual Git para Joomla! - Gestión de parches y solicitudes (3 de 3)

Escrito por 

Continuando con el documento técnico del taller de pruebas unitarias presentado en el J & Beyond por Mark Dexter, y del que vimos una introducción a Git para testers y desarrolladores, y con el artículo con información sobre el comando CLI y comandos Eclipse os facilitamos el siguiente documento sobre gestión de parches y solicitudes.

Nota importante sobre el formato de archivo del parche

Hay algún aspecto confuso al trabajar con parches entre SVN, Eclipse, Git y el interfaz-linea de comando (CLI). Esto tiene que ver con la manera en que los archivos son referenciados dentro del parche. La mayoría de los parches hechos con Eclipse y Git llevarán una "a/" y  "b/" delante de los nombres de archivo. Por ejemplo, un parche estándar de Git se verá así:

diff --git a/components/com_content/controller.phpb/components/com_content/controller.php
index 53cc63a..25cee76 100644
--- a/components/com_content/controller.php
+++ b/components/com_content/controller.php

Sin embargo, los parches hechos con SVN o usando la opción “--no-prefix” en Git, van a omitir el prefijo "a /" y "/ b" y lo mostrará en el siguiente formato:

diff --git components/com_content/controller.php components/com_content/controller.php
index 53cc63a..ba2de80 100644
--- components/com_content/controller.php
+++ components/com_content/controller.php

La mayoría de los parches, tendrán el primer formato.
Es fácil aplicar parches en cualquiera de los formatos, pero los comandos son diferentes. Estos se resumen a continuación:

Aplicar parches y extraer solicitudes sin ramas

Esto puede hacerse ya sea con o sin el uso de ramas. Si se quiere trabajar en solo un parche a la vez (similar al flujo de trabajo del SVN) se puede seguir este flujo de trabajo sin ramas.

Interface - Línea de Comando (CLI)

Para aplicar un parche en formato Git: git apply <file>. Por ejemplo: git apply mypatchfile.patch.
Para aplicar un parche en formato SVN: git apply -p0 <file>. Por ejemplo: git apply -p0 mypatchfile.patch.
En este punto, los cambios de código propuestos, han sido realizados en sus archivos Joomla. Ahora se pueden probar los cambios propuestos, para ver si funcionan correctamente. Para aplicar una extracción de solicitud de GitHub, añadir “diff” al final de la URL. Esto, abrirá un fichero de parche en formato Git en su navegador. Guarde este archivo en su máquina local y utilice el comando anterior para aplicarlo.

Eclipse

Para aplicar un parche en formato Git: Team → Apply patch (equipo → aplicar parche). La ventana de especificaciones de entrada del parche, aparecerá. Se puede aplicar un parche desde un archivo o copiando el parche al portapapeles.
Haga click en “siguiente” para mostrar la ventana de “Target Resource” (recurso de destino). Seleccione el proyecto PHP para aplicar a los parches y haga click en “siguiente”. La ventana de revisión de parche aparecerá.
IMPORTANTE: Si el parche está en formato Git, ajuste "Ignore leading path elements" (“ignorar los principales elementos de la ruta”) a 1. Esto no es necesario si el parche está en formato SVN.
En este punto, si el parche se aplica correctamente, los archivos se mostrarán con una flecha azul , como se muestra a continuación:

Git-document-screenshot-20120530-02

NOTA: Si aparece un “X” roja junto a un archivo, significa que el parche se aplicará correctamente. Compruebe el formato del archivo del parche, para asegurarse de tener la configuración correcta para este tipo. Compruebe también que no ha aplicado el parche aún.

Aplicar parches y extraer solicitudes usando ramas

En muchos casos, puede ser mas fácil crear una rama de Git para cada tema en el que se está trabajando. De esta manera, se puede trabajar en varias cosas a la vez, manteniendo los cambios en el código, separados. Crear ramas en Git es muy sencillo. Este es el flujo a seguir para la aplicación de parches usando ramas.

Interface - Línea de Comando (CLI)

Crear una nueva rama: git branch issue-123 ( esto crea una nueva rama llamada tema-123) Aplicar el parche como se ha explicado con anterioridad. Validar los cambios de código en la rama: commit-a. Tras esto, Git abrirá el editor elegido en la instalación de Git.

Introduzca el mensaje de confirmación en la primera linea del editor, guarde y salga. ( Si no está familiarizado con el editor, puede cambiar el editor o usar Eclipse, el cual se salta este paso en su proceso). El mensaje de confirmación debe ser algo corto que te diga lo que has hecho, por ejemplo: “aplicado el parche 123.parche”.

En este punto, la rama contiene la versión modificada de los archivos Joomla para poder probar. Puede volver fácilmente a los archivos originales con el siguiente comando: git checkout master

Para volver de nuevo a la versión modificada, utilice el comando: git checkout issue-123.

Eclipse

Crear una nueva rama: “Team” → “Switch to” → “New branch” (equipo → cambiar a → nueva rama). La ventana de creación de nueva rama, aparecerá.
Introduzca el nombre de la rama y haga click en “finalizar”. Aplicar el parche como se ha explicado con anterioridad.
Validar el cambio de código: “Team” → “Commit”. La ventana de validación se mostrará. Introduzca el mensaje de confirmación como se muestra en el siguiente ejemplo:

Git-document-screenshot-20120530-03

En este punto, puede revisar los cambios realizados en el código o simplemente pulsar en “commit” y validar los cambios.
Para volver a la rama original o cualquier otra, vuelva a utilizar: “Team”→”Switch To” y seleccione la original o la rama deseada.

Restaurar a estado "no modificado" sin ramas

Si no está usando ramas, cuando haya terminado de probar un tema, tendrá que restaurar sus programas al estado original “no modificado”. Tenga en cuenta que esto no es necesario si está utilizando ramas.

Interface - Línea de Comando (CLI)

Utilice este comando para deshacer los cambios en los archivos: git reset –hard
Utilice este comando para eliminar cualquier archivo añadido por el parche: git clean -f
Ejecute el comando:  git status y asegúrese que devuelve “nothing to commit (working directory clean)” (“nada que validar(directorio de trabajo limpio)).

Eclipse

Utilice este comando para deshacer los cambios en los archivos:  Team→Reset para mostrar la ventana de reinicio. Seleccione “hard” para el tipo de reinicio y haga click en “reset”.
Para eliminar cualquier archivo añadido por el parche, simplemente navegue a los archivos y elimínelos.

Restaurar a estado "no modificado" con ramas 

Si utiliza ramas, es mucho mas fácil volver a los programas “no modificados”. Solo debe cambiar a la rama principal. Una vez haya terminado con un tema, probablemente quiera eliminar la rama creada. Estos son los comandos para ello:

Interface - Línea de Comando (CLI)

Cambiar de nuevo a la rama principal: git checkout master
Eliminar la rama deseada: git branch -D issue-123 (donde “issue-123” es el nombre de la rama)

Eclipse

Cambiar de nuevo a la rama principal: Team→Switch to→master   (equipo → cambiar a → original)
Eliminar la rama deseada: Team→Advanced→Delete Branch (equipo → avanzado → eliminar rama) y selecciona la rama que desee eliminar.

Pruebas de versiones antiguas de la rama principal

A veces es útil averiguar que commit (validación) podría haber introducido un nuevo tema. Con Git es sencillo restaurar el código base en cualquier punto en el tiempo  y luego probar si ese tema estaba presente o no.

Ya que esta tarea es mucho mas fácil de hacer con Eclipse, es lo que se detalla en este documento.
Abrir la vista de histórico: Team→Show in History (equipo → mostrar en histórico). Esto mostrará una vista similar a esta:

Git-document-screenshot-20120530-04

Esta vista muestra todas las validaciones al repositorio CMS.

Para restaurar los archivos locales a un momento anterior, haga click con el botón derecho en la linea deseada, del histórico. Ahora podrá probar esta versión.

Para cambiar de versión, repita este proceso. Para volver a la rama principal (la versión mas reciente)
haga: Team→Switch to→Master (equipo → cambiar a → original).

Leer 1169 veces Modificado por última vez en Lunes, 23 Julio 2012 17:38
Irene López

Gestora de cuentas
Traducción de artículos oficiales
Social Media
Complusoft Team

Escribir un comentario


Código de seguridad
Refescar