it-swarm-eu.dev

Nejjednodušší způsob, jak vytvořit patch pro odeslání do WordPress Core?

Poslal jsem pár patchů pro WordPress jádro na Trac (jeden z nich byl použit), ale pokaždé, když jsem přemýšlel o tom, že to dělám, jsem se krčil, protože moje nastavení pro to je neuvěřitelně nudné.

Může někdo, prosím, podrobně popsat kroky potřebné k předložení patche pro jádro, a pak nejlepší způsob, jak tento proces zefektivnit, takže to není tak únavné? V současné době pracuji s Mac OS X a PhpStorm, ale myslím, že skript Shell může být nejjednodušší? Nebo možná PHP Script, který funguje ve všech rote?

Jednou z otázek je, že nerozumím tomu, co musím začít. Začnu s kufrem? Musím pokaždé, když chci vytvořit opravu, stáhnout novou kopii a přidat/upravit kopii s kódem?

Opět platí, že když jsem to udělal pracovat s SVN a patching je opravdu mimo mé současné dovednosti a chci to změnit. Doufám, že vám WordPress patching odborníci mohou přijít na mou záchranu. Díky předem.

AKTUALIZACE:

Po odpovědi @ hakre bych měl k otázce přidat další otázku:

  • Mohu vytvářet záplaty ze starší verze nebo musím použít trunk?
  • Pokud pracuji na projektu s použitím uvolněné verze (3.0.1), můžu jej upravit a vytvořit patch pro jádro nebo si musím stáhnout a nastavit nedotčenou a novou kopii kufru a nově provést úpravy?
  • Můžu se skripty Shell, takže mohu zakódovat přihlašovací údaje do skriptu a spustit skript, abych vytvořil vše, co potřebuji a/nebo vytvořit patch?
  • A jaká jsou úskalí?

Všechny tyto otázky se zdají být převzaty těmi, kteří vědí, jak WordPress SVN funguje a jako takové jsou vždy přehlíženy v jakékoli diskusi.

12
MikeSchinkel

Nejjednodušší způsob, jak vytvořit opravu, je popsán zde:

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

Mohu vytvářet záplaty ze starší verze nebo musím použít trunk?

Měli byste vytvořit opravu proti stejné verzi, kterou chcete použít.

Jinými slovy, neočekávejte, že patch vytvořený proti WP 3.0.1 bude platit čistě na WP 3.1-alfa.

Pokud pracuji na projektu s použitím uvolněné verze (3.0.1), můžu jej upravit a vytvořit patch pro jádro nebo si musím stáhnout a nastavit nedotčenou a novou kopii kufru a nově provést úpravy?

Pro každou novou opravu nemusíte nastavovat novou instalaci. Stačí použítsvn reverta vrátit se k původní kopii.

Databáze nemusí být pokaždé čistá. Vlastně je lepší, když máte nějaké modifikace, které simulují živé prostředí.

8
scribu

Eclipse PDT + Subclipse + X

Používám Eclipse, která má SVN Integration . Myslím, že PHP Strom to také dělá. Jdu do jednoho z mých trunk projektů, které jsou v podstatě pokladny z WordPress svn repository.

Pak upravím soubory, které potřebuji upravit. Eclipse ukazuje, které jsou upraveny, kliknu pravým tlačítkem myši na adresář, vyberu Team->Create Patch a nabídnu všechny změněné soubory, které mohu vybrat pro rozdíl. Pak si můžu vybrat mezi kopírováním do schránky nebo uložením na disk. Uložím všechny patche, které vytvořím, s číslem lístku do adresáře, který mám na pevném disku.

Pak jsem jít do prohlížeče a nahrát patch.

Mohl bych to také udělat s MyLyn Trac integrací, která je ještě pohodlnější, ale potřebujete XML-RPC přímo v trac, takže potřebujete kontaktovat administrátora trac. Funguje to docela dobře, ale nemám to nakonfigurovaný v každém projektu a používám to hlavně když dělám lístky.

Takže opravdu, pokladna Eclipse, pokud chcete. Je to obrovské a pomalé, takže potřebujete buď velký počítač. Na malých jsem s Fedora Linuxem zažil dobré zkušenosti. Eclipse na tom dobře běží. Vím, že jste fanouškem PHP Storm, ale dobře se mi líbí moje Eclipse a přichází s mnoha rozšířeními, která jsou opravdu rocková. I pro PHP :). Ale PHP Storm by měl v podstatě dělat i pokladnu/patch věci.

WordPress Eclipse 1x1

Ah a já mám v mém systému nástroj, který ukládá všechny použité adresáře. Takže můžu uložit záplaty a nahrát soubory rychle, protože jsou vždy ze stejného adresáře, který mám v nedávném seznamu.

Příklad integrace: PHP Kód Sniffer, Eclipse a WordPress

5
hakre

Já je používám já:

https://core.trac.wordpress.org/ticket/9724

Ačkoli je to samozřejmě více v aplikaci patch patch. ;-)

2
Denis de Bernardy