Creando y aplicando parches
En proyectos de código abierto (como éste), todos tienen acceso de lectura al repositorio, y cualquiera puede hacer una contribución al proyecto. ¿Así que cómo se controlan esas contribuciones? Si cualquiera pudiera confirmar cambios, el proyecto estaría permanentemente inestable y probablemente roto de forma permanente. En esta situación, el cambio se maneja mediante un archivo de parche enviado al equipo de desarrollo, que tienen acceso de escritura. Ellos pueden revisar el parche antes, y luego o bien confirmarlo en el repositorio o devolvérselo al autor.

Los archivos de parche son simplemente archivos de diff unificados que muestran las diferencias entre su copia de trabajo y la revisión base.

Creando un archivo parche
Primero necesita hacer y probar sus cambios. Luego en vez de utilizar el comando TortoiseSVN → Confirmar... sobre la carpeta padre, seleccione TortoiseSVN → Crear Parche...

Figura 4.52. El diálogo Crear parche


ahora puede seleccionar los archivos que desea incluir en el parche, del mismo modo a como lo haría con una confirmación completa. Esto producirá un único archivo que contendrá un resumen de todos los cambios que ha hecho a los archivos seleccionados desde la última vez que se actualizó desde el repositorio.

Las columnas en este diálogo pueden ser personalizadas de la misma forma que las columnas en el diálogo Comprobar modificaciones. Para más detalles, lea “Estado local y remoto”.

Al hacer clic en el Opciones botón puede especificar cómo se crea el parche. Por ejemplo, puede especificar que los cambios en las terminaciones de líneas o espacios en blanco no están incluidos en el fichero de parche definitivo.

Puede producir parches separados que contengan cambios a diferentes conjuntos de archivos. Por supuesto, si crea un archivo de parche, hace algunos cambios más a los mismos archivos y luego crea otro parche, el segundo archivo de parche incluirá ambos conjuntos de cambios.

Simplemente grabe el archivo utilizando un nombre de archivo de su elección. Los archivos de parche pueden tener la extensión que desee, pero por convención se suele utilizar las extensiones .patch o .diff extension. Ya está preparado para enviar su archivo de parches.

También puede almacenar el parche en el portapapeles en vez de en un archivo. Puede querer hacer esto para poder pegarlo en un email de forma que lo revisen otros. O si tiene dos copias de trabajo en una máquina y quiere transferir cambios de una a otra, un parche en el portapapeles es una forma cómoda de hacerlo.

Si lo prefiere, puede crear un archivo de revisión desde el Commit o Comprobar Modificaciones diálogos. Sólo tienes que seleccionar los archivos y utilizar la opción del menú contextual para crear un parche de esos archivos. Si desea ver las opciones de diálogo tiene que sostener cambio cuando haga clic derecho .

Aplicando un archivo parche
Los archivos de parches se aplican en su copia de trabajo. Esto debe hacerse desde el mismo nivel de carpetas que se utilizó para crear el parche. Si no está seguro de cuál es, mire la primera línea del archivo de parche. Por ejemplo, si el primer archivo en el que se trabajó era doc/source/english/chapter1.xml y la primera línea en el archivo de parche es Index: english/chapter1.xml entonces necesita aplicar el parche en la carpeta english. Sin embargo, suponiendo que esté en la copia de trabajo correcta, si ha seleccionado un nivel de carpeta erróneo, TortoiseSVN se dará cuenta y le sugerirá el nivel correcto.

Para aplicar un archivo de parche en su copia de trabajo, necesita al menos acceso de lectura al repositorio. La razón para esto es que el programa de fusión debe referenciar los cambios sobre la revisión contra la que se hicieron por el desarrollador remoto.

Desde el menú contextual de esa carpeta, pulse en TortoiseSVN → Aplicar Parche... Esto mostrará un diálogo de abrir archivo que le permitirá seleccionar el archivo de parche a aplicar. Por defecto sólo aparecen los archivos .patch o .diff, pero puede elegir “Todos los archivos”. Si había guardado previamente un parche en el portapapeles, puede usar Abrir desde el portapapeles... en el diálogo de abrir archivo. Note que esta opción sólo está disponible si guardó el partche en el portapapeles usando TortoiseSVN → Crear Parche.... Copiar un parche al portapapeles desde otra aplicación no hará que el botón aparezca.

Alternativamente, si el archivo de parche tiene una extensión .patch o .diff, puede hacer click con el botón derecho en él directamente y seleccioanr TortoiseSVN → Aplicar Parche.... En este caso se le preguntará la ruta de la copia de trabajo.

Estos dos métodos le ofrecen formas diferentes de hacer lo mismo. Con el primer método selecciona la copia de trabajo y busca el archivo de parche. Con el segundo selecciona el archivo de parche y busca la copia de trabajo.

Una vez que haya seleccionado el archivo de parche y la ruta de la copia de trabajo, se ejecuta TortoiseMerge para fusionar los cambios del archivo de parche contra su copia de trabajo. Una pequeña ventana le muestra los archivos que han sido cambiados. Haga doble click por turnos en cada uno de ellos, compruebe los cambios y grabe los archivos fusionados.

El parche del desarrollador remoto ya ha sido aplicado a su copia de trabajo, por lo que necesita confirmar para que todos los demás accedan a los cambios desde el repositorio.