Esta página descreve um fluxo de trabalho para descarregar e aplicar patches a um espaço de trabalho local, baseado em “ramos tópicos” locais.
Nota: Também pode usar a ferramenta drupalorg-cli para criar um ramo de edição e aplicar o patch.
Prepare o repositório local
- Seguir os passos sobre a clonagem de um repositório Drupal git para fazer uma cópia local do repositório ou actualizar a sua cópia local existente para a última versão.
- Criar um “ramo de características” local para o problema em que está a trabalhar.
git checkout -b - # e.g. 123456-some-bug
Obter e aplicar um ficheiro de correcção
Baixar o ficheiro de correcção do problema, e aplicar as alterações de código na correcção ao seu directório de trabalho (os comandos seguintes assumem que está numa janela terminal no directório raiz do projecto). Existem várias alternativas:
Também, existem muitos argumentos de linha de comando para o comando git apply
. Um útil é -v
, que dá uma saída mais verbosa:git apply -v patchname.patch
br>Ver a documentação do git apply para mais informações.
Se o patch não se aplicar, e talvez esteja a receber um “Skipped patch …”, tente a mensagem patch
comando (ver “Notas de rodapé” abaixo para mais informações) ou volte a colocar o patch:
patch -p1 < .patch
Versão do patch, adicionando o parâmetro -R
:
patch -R -p1 < .patch
Submeter o patch
Se estás a planear trabalhar para melhorar o patch, o próximo passo é submeter o patch original ao teu ramo de repositório local:
git add FILESAFFECTEDgit commit -m "Patch COMMENTNUMBER by OTHERPERSON”
Quando tiveres terminado: Limpeza do código
Após teres terminado de testar o patch, vais querer fazer com que o teu repositório volte ao estado “limpo”:
- Utiliza este comando para reverter o patch:
git apply -R path/file.patch
- Utiliza este comando para apagar o ramo de característica que criaste:
git branch -D
Composer
Se estiver a manter o código para um site Drupal com Composer, e um dos projectos precisar de ter um patch:
* Para aplicar correcções utilizando o Composer, é necessário instalar o composer-patches project:
composer require cweagans/composer-patches:~1.0 --update-with-dependencies
Notas de rodapé
- Também se pode aplicar correcções com
git am
git am
também é útil se os remendos foram criados porgit format-patch
. - O comando
patch
é útil para os patches que não se aplicam, uma vez que aplicará a maior parte do patch e, em seguida, poderá ser capaz de olhar para o ficheiro.rej
que cria para os “hunks” rejeitados do patch, e corrigi-los manualmente. Se for demasiado complicado, tente alterar o patch. - li> uma vez que os ficheiros de patch em si nunca devem ser adicionados ao projecto, pode querer dizer a Git para os ignorar adicionando a linha
*.patch
ao ficheiro.git/info/exclude
no projecto, ou a um ficheiro global ~/.gitignore. Alternativamente, pode descarregá-los para um local diferente. - Se tiver erros quando tentar aplicar um patch, verifique o seguinte:
- O patch pode ter a codificação de fim de linha errada. O nosso padrão é utilizar a codificação de fim de linha ao estilo Unix (ver Directrizes de Remendos).
- O remendo pode não corresponder à versão de desenvolvimento mais recente. Ver Correcções de alteração para saber como fundir em alterações posteriores.
- Se o teste automático também assinalou a correcção como não sendo aplicável no momento em que foi criada, o programador que criou a correcção pode ter cometido um erro (tal como não utilizar Git ou não utilizar a versão de desenvolvimento mais recente).