Il modo più semplice per creare una patch per l'invio a WordPress Core?


13

Ho inviato alcune patch per il core di WordPress su Trac (una delle quali è stata utilizzata) ma ogni volta che penso di farlo, mi faccio rabbrividire perché la mia configurazione per farlo è incredibilmente noiosa.

Qualcuno può dettagliare i passaggi necessari per inviare una patch per core e quindi il modo migliore per semplificare il processo in modo che non sia così noioso? Attualmente lavoro Mac OS X e PhpStorm ma sto pensando che uno script di shell potrebbe essere più semplice? O forse uno script PHP che fa funzionare tutto il rote?

Uno dei problemi è che non capisco perfettamente con cosa devo iniziare. Comincio con trunk? Devo scaricare una nuova copia e aggiungerla / modificarla con il mio codice ogni volta che voglio creare una patch?

Ancora una volta, mentre l'ho fatto lavorando con SVN e il patching è davvero al di fuori della mia attuale competenza e voglio cambiarlo. Spero che voi esperti di patching di WordPress possano venire in mio soccorso. Grazie in anticipo.

AGGIORNARE:

Dopo la risposta di @hakre, immagino che dovrei aggiungere altro alla domanda:

  • Posso creare patch dalla versione precedente o devo usare trunk?
  • Se sto lavorando a un progetto utilizzando la versione rilasciata (3.0.1), posso modificarlo e creare una patch per core oppure devo scaricare e configurare una copia originale e nuova di trunk e apportare di nuovo le mie modifiche?
  • Posso fare con gli script di shell in modo da poter codificare il login nello script ed eseguirlo semplicemente per ricreare tutto ciò di cui ho bisogno e / o per creare la patch?
  • E quali sono le insidie?

Tutte queste domande sembrano essere assunte da coloro che sanno come funziona l'SVN di WordPress e come tali sono sempre trattate in una discussione.

Risposte:


8

Il modo più semplice per creare una patch è descritto qui:

http://wordpress.org/download/svn/

Posso creare patch dalla versione precedente o devo usare trunk?

Dovresti creare la patch con la stessa versione a cui vuoi che venga applicata.

In altre parole, non aspettatevi che una patch creata con WP 3.0.1 si applichi in modo pulito su WP 3.1-alpha.

Se sto lavorando a un progetto utilizzando la versione rilasciata (3.0.1), posso modificarlo e creare una patch per core oppure devo scaricare e configurare una copia originale e nuova di trunk e apportare di nuovo le mie modifiche?

Non è necessario impostare una nuova installazione per ogni nuova patch. Puoi semplicemente usare svn revert per tornare a una copia originale.

Inoltre, il database non deve essere pulito ogni volta. In realtà, è meglio se hai alcune modifiche, per simulare un ambiente live.


1
Accidenti, è dannatamente facile creare una patch dopo che abbiamo la nostra copia di lavoro svn diff > my-patch.patch:, me gusta!
brasofilo,

5

Eclipse PDT + Subclipse + X

Sto usando Eclipse che ha l'integrazione SVN . Penso che anche PHP Strom lo faccia. Vado in uno dei miei progetti trunk che sono fondamentalmente un checkout dal repository svn di WordPress.

Quindi modifico i file che devo modificare. Eclipse mostra quali sono state modificate, faccio clic con il pulsante destro del mouse su una directory, seleziono Team->Create Patche mi vengono offerti tutti i file modificati che posso selezionare per il diff. Quindi posso scegliere tra copiare negli appunti o salvare su disco. Salvo tutte le patch che creo con il numero del biglietto in una directory che ho sul mio disco fisso.

Quindi vado nel browser e carico la patch.

Potrei anche farlo con un'integrazione MyLyn Trac , che è ancora più comoda, ma hai bisogno di XML-RPC proprio in trac quindi hai bisogno di un amministratore trac per contattare. Funziona abbastanza bene ma non lo ho configurato in tutti i progetti e lo uso principalmente quando eseguo i biglietti.

Quindi davvero, controlla Eclipse se vuoi. È enorme e lento, quindi è necessario un grande computer. Su quelli piccoli ho fatto buone esperienze con Fedora Linux. Eclipse funziona bene su di esso. So che sei un fan di PHP Storm ma, beh, mi piace molto il mio Eclipse e viene fornito con molte estensioni che scuotono davvero. Anche per PHP :). Ma PHP Storm dovrebbe sostanzialmente fare anche il checkout / patch.

WordPress Eclipse 1x1

Ah e io abbiamo uno strumento nel mio sistema operativo che salva tutte le directory che ho usato. Quindi posso salvare le patch e caricare i file velocemente perché provengono sempre dalla stessa directory che ho nell'elenco recente di allora.

Esempio di integrazione: Sniffer codice PHP, Eclipse e WordPress


Grazie per aver risposto. Ho provato Eclipse e l'ho odiato. Non risponde e non mi è piaciuta l'interfaccia. Quindi è una buona risposta per gli altri per i quali Eclipse è un'opzione, ma la tua risposta non risponde alle mie esigenze. Lo darò e voterò, ma preferirei una soluzione non legata all'IDE, anche una che spieghi meglio il processo.
MikeSchinkel,

Volevo anche dire che PhpStorm ha una piena integrazione SVN (e Git) ma la sua integrazione richiede davvero all'utente di comprendere appieno l'effetto che ogni menu avrà perché offre una guida minima o nulla su come lavorare con loro (ce ne sono molti nei file della guida ma poiché non sono sensibili al contesto e poiché SVN + Git è un'enorme aggiunta a PhpStorm è facile perdersi completamente in tutto questo.) Ecco perché voglio capirlo nel profondo e non passare agli IDE Non mi piace farlo.
MikeSchinkel,

@MikeSchinkel - Se SVN è troppo complicato per te (indipendentemente dal tipo di SVN + Editor), non puoi creare patch per il progetto wordpress. Fondamentalmente se non ti piace l'interfaccia della tua interfaccia utente a SVN, impara la riga di comando. Ma devi imparare comunque. Puoi usare SVN con qualsiasi editor che ti piace tra l'altro. Ho un trunk SVN copyrunning e configurato su un server web in modo da creare patch e testarle. Dopo aver apportato una patch rimuovo le modifiche locali (ripristina) dalla mia copia locale e quindi posso continuare con altre patch. È sempre lavoro. Cos'altro dire?
hakre,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.