¿Cómo dividir y editar parches?

10

A veces necesito dividir un parche grande en parches más pequeños (disjuntos), por ejemplo, para cada característica separada incluida.

Por lo general, lo hago a través de comandos estándar vim yank / dd y cambio de ventana dividida.

¿Pero hay algunas herramientas / trucos vim para ayudar con este tipo de edición?

Por ejemplo, soporte para comandos como: mover los 3 siguientes trozos completos al archivo de parche abierto a la derecha

maxschlepzig
fuente
Es posible que desee ver también en unix.stackexchange.com/questions/618/how-to-merge-patches
Maciej Piechotka
1
Por cierto, ¿cómo es que las personas responden la pregunta pero no la encuentran útil / lo suficientemente clara como para votarla? ;)
maxschlepzig

Respuestas:

7

Es posible que desee echar un vistazo a patchutils [1]. Para la parte vim, escribí un pequeño complemento vim que ayuda a navegar en parches: diff_navigator [2].

[1] http://cyberelk.net/tim/software/patchutils/

[2] http://www.vim.org/scripts/script.php?script_id=2361

Petr Uzel
fuente
1
La diff_navigatorURL aparentemente es vim.org/scripts/script.php?script_id=2361 Emacs tiene características similares en los modos Ediff y SMerge
Riccardo Murri
2
¿Podría extender su respuesta para hacerlo más completo? Adición de un ejemplo de cómo utilizar lo que la utilidad de los patchutils establecidos para dividir una gran mancha en los disjuntos sería grande ...
maxschlepzig
5

Supongo que fuera de tema, pero sigo pensando que es útil.

Si usa git para hacer su desarrollo, puede dividir fácilmente todos sus cambios en "trozos" más pequeños que incorporan una característica cada uno. Termina con una confirmación por función y puede usar git git-format-patchpara crear (e incluso firmar y atribuir correctamente) parches, describí cómo hacerlo aquí

tante
fuente
3

My Suse tiene splitdiffutil que funciona así:

$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002
akond
fuente