Einfachste Möglichkeit, einen Patch für die Übermittlung an WordPress Core zu erstellen?

13

Ich habe ein paar Patches für WordPress Core auf Trac eingereicht (von denen einer verwendet wurde), aber jedes Mal, wenn ich darüber nachdenke, schaudere ich, weil mein Setup dafür unglaublich langweilig ist.

Kann jemand bitte die Schritte detaillieren, die zum Einreichen eines Patches für den Core erforderlich sind, und dann den besten Weg, um den Prozess so zu rationalisieren, dass er nicht so langweilig ist? Ich arbeite derzeit mit Mac OS X und PhpStorm, denke aber, dass ein Shell-Skript am einfachsten ist? Oder vielleicht ein PHP-Skript, das die ganze Arbeit macht?

Eines der Probleme ist, dass ich nicht ganz verstehe, womit ich anfangen muss. Beginne ich mit Kofferraum? Muss ich jedes Mal, wenn ich einen Patch erstellen möchte, eine neue Kopie herunterladen und diese Kopie mit meinem Code hinzufügen / bearbeiten?

Auch hier liegt die Arbeit mit SVN und dem Patchen außerhalb meiner derzeitigen Fähigkeiten, und das möchte ich ändern. Ich hoffe, Sie WordPress-Patching-Experten können zu meiner Rettung kommen. Danke im Voraus.

AKTUALISIEREN:

Nach der Antwort von @ hakre sollte ich der Frage mehr hinzufügen:

  • Kann ich Patches aus einer älteren Version erstellen oder muss ich trunk verwenden?
  • Wenn ich mit der freigegebenen Version (3.0.1) an einem Projekt arbeite, kann ich es ändern und einen Patch für den Core erstellen oder muss ich eine makellose und neue Kopie von trunk herunterladen und einrichten und meine Änderungen dort neu vornehmen?
  • Kann ich mit Shell-Skripten arbeiten, um die Anmeldung im Skript zu verschlüsseln und das Skript auszuführen, um alles neu zu erstellen, was ich brauche, und / oder um den Patch zu erstellen?
  • Und was sind die Tücken?

All diese Fragen scheinen von denen angenommen zu werden, die wissen, wie WordPress's SVN funktioniert, und werden daher in jeder Diskussion übersehen.

MikeSchinkel
quelle

Antworten:

8

Der einfachste Weg, einen Patch zu erstellen, ist hier beschrieben:

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

Kann ich Patches aus einer älteren Version erstellen oder muss ich trunk verwenden?

Sie sollten den Patch für dieselbe Version erstellen, für die Sie ihn anwenden möchten.

Mit anderen Worten, erwarten Sie nicht, dass ein Patch, der für WP 3.0.1 erstellt wurde, ordnungsgemäß auf WP 3.1-alpha angewendet wird.

Wenn ich mit der freigegebenen Version (3.0.1) an einem Projekt arbeite, kann ich es ändern und einen Patch für den Core erstellen oder muss ich eine makellose und neue Kopie von trunk herunterladen und einrichten und meine Änderungen dort neu vornehmen?

Sie müssen nicht für jeden neuen Patch eine neue Installation einrichten. Sie können einfach svn revert verwenden , um zu einer makellosen Kopie zurückzukehren.

Außerdem muss die Datenbank nicht jedes Mal sauber sein. Eigentlich ist es besser, wenn Sie einige Änderungen vornehmen, um eine Live-Umgebung zu simulieren.

scribu
quelle
1
Es ist verdammt einfach, einen Patch zu erstellen, nachdem wir unsere Arbeitskopie haben: svn diff > my-patch.patchme gusta!
Brasofilo
5

Eclipse PDT + Subclipse + X

Ich verwende Eclipse mit SVN-Integration . Ich denke, PHP Strom tut dies auch. Ich gehe in eines meiner Trunk-Projekte, die im Grunde eine Prüfung aus dem WordPress-SVN-Repository sind.

Dann bearbeite ich die Dateien, die ich bearbeiten muss. Eclipse zeigt an, welche Änderungen vorgenommen wurden. Ich klicke mit der rechten Maustaste auf ein Verzeichnis, wähle Team->Create Patchund mir werden alle geänderten Dateien angeboten, die ich für das Diff auswählen kann. Dann kann ich zwischen Kopieren in die Zwischenablage oder Speichern auf der Festplatte wählen. Ich speichere alle Patches, die ich mit der Ticketnummer erstelle, in einem Verzeichnis, das ich auf meiner Festplatte habe.

Dann gehe ich in den Browser und lade den Patch hoch.

Ich könnte dies auch mit einer MyLyn Trac- Integration tun , die noch komfortabler ist, aber Sie benötigen XML-RPC direkt in trac, sodass Sie einen trac-Administrator für die Kontaktaufnahme benötigen. Es funktioniert ziemlich gut, aber ich habe es nicht in jedem Projekt konfiguriert und verwende es hauptsächlich, wenn ich Ticket-Rundowns mache.

Also, schauen Sie sich Eclipse an, wenn Sie möchten. Es ist riesig und langsam, sodass Sie entweder einen großen Computer benötigen. Auf kleinen habe ich gute Erfahrungen mit Fedora Linux gemacht. Eclipse läuft gut darauf. Ich weiß, dass Sie ein PHP Storm-Fan sind, aber ich mag meine Eclipse wirklich und sie kommt mit vielen Erweiterungen, die wirklich rocken. Auch für PHP :). Aber PHP Storm sollte grundsätzlich auch das Checkout / Patch-Zeug erledigen.

WordPress Eclipse 1x1

Ah und ich haben ein Tool in meinem Betriebssystem, das alle von mir verwendeten Verzeichnisse speichert. So kann ich die Patches speichern und die Dateien schnell hochladen, da sie immer aus demselben Verzeichnis stammen, das ich in der letzten Liste habe.

Integrationsbeispiel: PHP Code Sniffer, Eclipse und WordPress

hakre
quelle
Danke für die Antwort. Ich habe es mit Eclipse versucht und es gehasst. Zu nicht reagierend und mir hat die Benutzeroberfläche einfach nicht gefallen. Es ist also eine gute Antwort für andere, für die Eclipse eine Option ist, aber Ihre Antwort geht nicht auf meine Bedürfnisse ein. Ich gebe es ab und stimme ab, aber ich bevorzuge eine Lösung, die nicht an IDE gebunden ist, auch eine, die den Prozess besser erklärt.
MikeSchinkel
Ich wollte auch sagen, dass PhpStorm über eine vollständige SVN (und Git) -Integration verfügt, aber für die Integration muss der Benutzer wirklich genau wissen, welche Auswirkungen die einzelnen Menüs haben, da es kaum oder gar keine Anleitungen für die Arbeit mit ihnen gibt (es gibt viele) in den Hilfedateien, aber da sie nicht kontextsensitiv sind und da SVN + Git eine große Erweiterung von PhpStorm ist, kann man sich leicht darin verirren.) Deshalb möchte ich es im Kern verstehen und nicht auf IDEs umsteigen Ich mag es nicht.
MikeSchinkel
@MikeSchinkel - Wenn SVN für Sie zu kompliziert ist (unabhängig von der Version von SVN + Editor), können Sie keine Patches für das WordPress-Projekt erstellen. Grundsätzlich, wenn Sie die Schnittstelle Ihrer Benutzeroberfläche zu SVN nicht mögen, lernen Sie die Kommandozeile. Aber du musst es trotzdem lernen. Sie können SVN mit jedem Editor verwenden, den Sie übrigens mögen. Ich habe einen SVN-Trunk-Copyrunning und auf einem Webserver konfiguriert, um Patches zu erstellen und zu testen. Nachdem ich einen Patch erstellt habe, entferne ich lokale Änderungen (Rückgängigmachen) von meiner lokalen Kopie und kann dann mit anderen Patches fortfahren. Es ist immer Arbeit. Was kann man sonst sagen?
Hakre