Às vezes, preciso dividir um patch grande em outros menores (disjuntos), por exemplo, para cada recurso separado incluído.
Geralmente faço isso por meio de comandos vim yank / dd padrão e troca de janela dividida.
Mas existem algumas ferramentas / vim-truques para ajudar com esse tipo de edição?
Por exemplo, suporte a comandos como: mova os 3 próximos blocos completos para o arquivo de correção aberto à direita
Respostas:
Você pode dar uma olhada nos patchutils [1]. Para a parte do vim, escrevi um pequeno plugin do vim que ajuda a navegar nos patches: diff_navigator [2].
[1] http://cyberelk.net/tim/software/patchutils/
[2] http://www.vim.org/scripts/script.php?script_id=2361
fonte
diff_navigator
URL é aparentemente vim.org/scripts/script.php?script_id=2361 Emacs tem características semelhantes nas Ediff modos e SMergeUm pouco fora do tópico, eu acho, mas ainda acho que é útil.
Se você usar o git para o seu desenvolvimento, poderá facilmente dividir todas as suas alterações em "pequenos pedaços" que incorporam um recurso cada. Você acaba com um commit por recurso e pode usar o git
git-format-patch
para criar (e até assinar e atribuir adequadamente) patches, descrevi como fazer isso aquifonte
Meu Suse tem
splitdiff
util que funciona assim:fonte
Você pode usar isso para dividir o patch grande em blocos menores (por arquivo ou cada pedaço) e, se precisar mesclar, use o combinadoiff do pacote patchutils mencionado na resposta de Petr Uzel
fonte