2010-06-18 16 views
7

Tengo un parche de kernel para una versión de kernel ligeramente diferente a la que intento parchar. Huelga decir que el parche falla parcialmente. Ciertamente puedo arreglarlo manualmente, pero me preguntaba si tal vez hay una utilidad de parche gráfica que se puede usar para resolver los conflictos.Utilidad de parche gráfica

Respuesta

1

No conozco la utilidad de parches gráficos, pero lo que probablemente haría es obtener los archivos en la versión anterior del núcleo, aplicar el parche para obtener los archivos viejos parcheados (manteniendo el archivo anterior) (s)), obtenga el (los) archivo (s) en la nueva versión del kernel, y luego use una herramienta de combinación de 3 vías como GNU Meld.

Este procedimiento lleva un poco de tiempo, pero he encontrado que es extremadamente útil para resolver conflictos de Subversion (muy similar a lo que está intentando lograr). Y le permite determinar rápidamente cómo diferente es el archivo (s) en las dos versiones del kernel, qué ha cambiado y los diversos cambios que probablemente necesitará hacer en las líneas de parche para hacerlos compatibles con el archivo (s) nuevo (s)

+0

Sé sobre meld. El problema obvio con lo que sugirió es que hay demasiadas diferencias, además del parche, entre las versiones antiguas y las nuevas del kernel. Parece que la utilidad que estoy buscando no existe, así que tendré que hacerlo manualmente. Gracias de cualquier manera. – Demiurg

8

Hay muchas utilidades de parches gráficas, tratan meld, diffuse, o kdiff3dirdiff, deben ser envasadas para su distribución.

Otra herramienta útil es wiggle, que "se esfuerza más" para resolver conflictos, y convertirá un archivo rej del parche en un conflicto en línea estilo CVS con los marcadores >>>.

que tienden a utilizar con un sistema de revisión subyacente, así que estoy feliz de revertir sus cambios si están equivocados, como tal, yo uso:

wiggle -v --replace <file> <file.rej>

que dice que hacer la transformación en su lugar, algunas veces solo hará lo correcto, otras veces terminará con marcadores >>> y puede editar a mano, pero es más fácil que usar un archivo rej a mano. Si realmente funciona mal, uso mi sistema de control de revisiones (git) para volver al original.

0

Sí, me encontré con una situación similar al intentar aplicar los parches de Firefox Light v27 a Firefox v28 beta 4. El equipo de Mozilla retituló algunas cosas, así que no es una caída directa. Esperaba hacer esto para poder compilarlo para Linux. Terminé abriendo el parche en un editor de texto y el código en otro.

Era Mousepad, pero podría haber sido cualquier editor de texto simple para ese asunto, gEdit, Leafpad, Geany ... Luego hice todas las modificaciones a mano, una al lado de la otra, de una ventana a otra, pero es muy lento de esa manera. "Buscar" fue útil para saltar a las ubicaciones de edición correctas.

También debo mencionar que si pega la pieza del parche que está utilizando en una ventana vacía, puede Buscar-y-Reemplazar el símbolo + y luego lo reemplaza con nada, por lo que lo reduce al código utilizable ... que es más fácil para bloques grandes de código agregado, en lugar de mover los dedos sobre la flecha hacia arriba y eliminar teclas.