Applicare una patch in un feature branch

Questa pagina delinea un flusso di lavoro per scaricare e applicare le patch a un’area di lavoro locale, basata su “topic branch” locali.

Nota: Puoi anche usare lo strumento drupalorg-cli per creare un issue branch e applicare la patch.

Prepara il repository locale

  1. Segui i passi su Clonare un repository git di Drupal per fare una copia locale del repository o aggiorna la tua copia locale esistente all’ultima versione.
  2. Crea un “ramo tematico” locale per il problema su cui stai lavorando.
    git checkout -b - # e.g. 123456-some-bug

Ottenere e applicare un file patch

Scaricare il file patch dal problema, e applicare le modifiche al codice nella patch nella propria directory di lavoro (i seguenti comandi presuppongono che ci si trovi in una finestra di terminale nella directory principale del progetto). Ci sono diverse alternative:

Inoltre, ci sono molti argomenti a riga di comando per il comando git apply. Uno utile è -v, che dà un output più prolisso:
git apply -v patchname.patch
Si veda la documentazione di git apply per maggiori informazioni.

Se la patch non si applica, e forse si ottiene un messaggio “Skipped patch …”, provate il comando patch (vedi le “Note a piè di pagina” qui sotto per saperne di più) o riapplicate la patch:

patch -p1 < .patch

Riapplicate la patch, aggiungendo il parametro -R:

patch -R -p1 < .patch

Fai il commit della patch

Se hai intenzione di lavorare per migliorare la patch, il prossimo passo è quello di fare il commit della patch originale nel tuo ramo locale del repository:

git add FILESAFFECTEDgit commit -m "Patch COMMENTNUMBER by OTHERPERSON”

Quando hai finito: Pulizia del codice

Dopo aver finito di testare la patch, vorrete riportare il vostro repository ad uno stato “pulito”:

  • Utilizzate questo comando per ripristinare la patch: git apply -R path/file.patch
  • Utilizza questo comando per cancellare il ramo delle funzionalità che hai creato: git branch -D

Composer

Se stai mantenendo il codice di un sito Drupal con Composer, e uno dei progetti deve avere una patch:

* Per applicare le patch usando Composer è necessario installare il progetto composer-patches:

composer require cweagans/composer-patches:~1.0 --update-with-dependencies

Note a piè di pagina

  • È possibile applicare le patch anche con git amgit am è anche utile se le patch sono state create da git format-patch.
  • Il comando patch è utile per le patch che non si applicano, in quanto applicherà la maggior parte della patch e poi si può essere in grado di guardare il file .rej che crea per i “pezzi” respinti della patch, e sistemarli manualmente. Se è troppo complicato, prova a rerollare la patch.
  • Siccome i file patch stessi non dovrebbero mai essere aggiunti al progetto, potresti voler dire a Git di ignorarli aggiungendo la linea *.patch al file .git/info/exclude nel progetto, o ad un file globale ~/.gitignore. In alternativa, puoi scaricarli in una posizione diversa.
  • Se hai degli errori quando cerchi di applicare una patch, controlla quanto segue:
    • La patch potrebbe avere la codifica di fine riga sbagliata. Il nostro standard è di usare la codifica di fine riga in stile Unix (vedi Linee guida per le patch).
    • La patch potrebbe non corrispondere all’ultima versione di sviluppo. Vedere Rerolling patches per come unire le modifiche successive.
    • Se il test automatico ha anche segnalato la patch come non applicabile al momento in cui è stata creata, lo sviluppatore che ha creato la patch potrebbe aver commesso un errore (come non usare Git o non usare l’ultima versione di sviluppo).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *