Às vezes, enfrentamos a situação de corrigir bugs em versões mais antigas de nossos aplicativos. Essas correções também devem ser aplicadas a outras versões, mas alguns códigos são movidos para outros diretórios ou podem ser extraídos em uma única biblioteca.
Novamente, com o Git isso não é tão difícil. A combinação de Git e um editor de texto funciona bem para mim, mas talvez haja outra solução. Se você tiver um, sinta-se à vontade para compartilhá-lo na seção de comentários.
OK. Digamos que corrigimos um bug em foo.coffee e isso também deve ser incluído em outra versão. Criar um patch é a primeira etapa:
git diff HEAD~1 -- app/assets/javascripts/foo.coffee > fix_sorting_foo.patch
Abra seu editor de texto e abra o patch. Estou apaixonada por Sublime Text, é muito fácil fazer algumas coisas de substituição que temos que fazer na etapa 2:
diff --git a/app/assets/javascripts/foo.coffee b/app/assets/javascripts/foo.coffee
index 99a49a7..647456d 100644
--- a/app/assets/javascripts/foo.coffee
+++ b/app/assets/javascripts/foo.coffee
O patch deve ser aplicado a vendor/assets/javascripts/foo.coffee
, portanto, substitua todas as ocorrências de app
por vendor
.
(Para Sublime: coloque o cursor na frente do aplicativo e pressione cmd + g, depois digite vendor
).
A última etapa é aplicar o patch:
git apply --stat fix_sorting_foo.patch # check what will be changed
git apply --check fix_sorting_foo.patch # check if it will apply
git apply fix_sorting_foo.patch
Feito. Feliz patching.