Funzionamento delle patch
I file patch (o diff) sono file di testo che contengono una nota:
- File da modificare.
- Il numero di riga per iniziare la modifica e il numero di righe da modificare.
- Il nuovo codice da scambiare.
Quando viene eseguito il programma patch, il file viene letto e vengono apportate le modifiche specificate ai file.
Esistono tre tipi di patch:
- Hotfix: patch pubblicate da Adobe nel Centro sicurezza PC.
- Singole patch: patch create e distribuite su base individuale dal supporto Adobe Commerce.
- Patch personalizzate—Patch non ufficiali che è possibile creare da un commit Git.
Hotfix
Gli hotfix sono patch che presentano problemi di sicurezza ad alto impatto o problemi di qualità che interessano molti commercianti. Queste correzioni vengono applicate alla versione patch successiva per la versione secondaria applicabile. Adobe rilascia gli hotfix in base alle esigenze.
È possibile trovare aggiornamenti rapidi in Centro sicurezza PC. Seguire le istruzioni riportate nella pagina per scaricare il file di patch, in base alla versione e al tipo di installazione. Utilizza la riga di comando o Compositore per applicare patch di correzione rapida.
Singole patch
Le singole patch contengono correzioni di qualità a basso impatto per un problema specifico. Queste correzioni sono applicate alla versione secondaria supportata più di recente (ad esempio, 2.4.x), ma potrebbero mancare nella versione secondaria supportata precedente (ad esempio, 2.3.x). Adobe rilascia singole patch in base alle esigenze.
Utilizzare Quality Patches Tool per applicare singole patch.
Patch personalizzate
A volte ci vuole un po’ di tempo perché il team ingegneristico Adobe includa una correzione di bug effettuata su GitHub in una versione di Adobe Commerce Composer. Nel frattempo, puoi creare una patch da GitHub e utilizzare il plug-in cweagans/composer-patches
per applicarla all'installazione basata su Composer.
Utilizza la riga di comando o Compositore per applicare patch personalizzate.
Esistono diversi modi per creare file di patch personalizzati. L’esempio seguente si concentra sulla creazione di una patch da un commit Git noto.
Per creare una patch personalizzata:
-
Crea una directory
patches/composer
nel progetto locale. -
Identifica il commit GitHub o la richiesta di pull da utilizzare per la patch. Questo esempio utilizza il commit
2d31571
, collegato al problema GitHub #6474. -
Aggiungi le estensioni
.patch
o.diff
all'URL del commit. Utilizza.diff
per un file di dimensioni inferiori. Esempio: https://github.com/magento/magento2/commit/2d31571f1bacd11aa2ec795180abf682e0e9aede.diff -
Salvare la pagina come file nella directory
patches/composer
. Ad esempio,github-issue-6474.diff
. -
Modificare il file e rimuovere
app/code/<VENDOR>/<PACKAGE>
da tutti i percorsi in modo che siano relativi alla directoryvendor/<VENDOR>/<PACKAGE>
.note note NOTE Gli editor di testo che rimuovono automaticamente gli spazi vuoti finali o aggiungono nuove righe possono interrompere la patch. Utilizza un semplice editor di testo per apportare queste modifiche.
Nell'esempio seguente viene illustrato il file DIFF menzionato in precedenza dopo la rimozione di tutte le istanze di app/code/Magento/Payment
:
diff --git a/view/frontend/web/js/view/payment/iframe.js b/view/frontend/web/js/view/payment/iframe.js
index c8a6fef58d31..7d01c195791e 100644
--- a/view/frontend/web/js/view/payment/iframe.js
+++ b/view/frontend/web/js/view/payment/iframe.js
@@ -154,6 +154,7 @@ define(
*/
clearTimeout: function () {
clearTimeout(this.timeoutId);
+ this.fail();
return this;
},
Applicazione delle patch
È possibile applicare le patch utilizzando uno dei seguenti metodi: