Como dividir e editar patches?


10

À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



1
BTW, como é que as pessoas respondem à pergunta, mas não a consideram útil / clara o suficiente para votar novamente?!? ;)
maxschlepzig 01/10/10

Respostas:


7

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


1
A diff_navigatorURL é aparentemente vim.org/scripts/script.php?script_id=2361 Emacs tem características semelhantes nas Ediff modos e SMerge
Riccardo Murri

2
Você poderia estender sua resposta para torná-la mais abrangente? Adicionando um exemplo de como usar o utilitário a partir do patchutils estabelecidos para dividir um grande patch para os disjuntos seria ótimo ...
maxschlepzig

5

Um 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-patchpara criar (e até assinar e atribuir adequadamente) patches, descrevi como fazer isso aqui


3

Meu Suse tem splitdiffutil que funciona assim:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.