How-to: Schieben Sie ein GitHub-Repo auf die WordPress-Plugin-Server


21

Ich entwickle mein Plugin auf Github, aber wenn es um die Bereitstellung geht, muss ich meine Änderungen irgendwie in den Wordpress-SVN kopieren . Momentan mache ich das manuell und kopiere jede Datei in jedem Verzeichnis einzeln, aber das ist zeitaufwändig und fehleranfällig.

Ich habe ein paar Skripte gesehen und ausprobiert, aber ich denke, ich muss sie falsch ausführen, da sie entweder fehlerhaft sind oder die Dateien nicht richtig kopieren.

Meine Frage ist also, hat jemand dies automatisch erreicht und wenn ja, wie haben Sie es gemacht?

Vielen Dank!


Obwohl ich denke, dass dies eine interessante und nützliche Frage ist, fällt sie auch aus dem Rahmen, da es um die Interaktion von Git und Subversion geht und es nichts spezielles für WordPress gibt. Ich muss mir
überlegen

Ich habe eine Frage zu Meta gestartet , um diesen Fall zu diskutieren.
Rarst

@Rarst danke dafür, sorry für die falsche Platzierung der Frage
studioromeo

Antworten:


1

Sehen Sie sich dieses Tutorial eines Mitarbeiters meines Teams an: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

aber er benutzt die Lösung nicht, es ist einfacher, getrennt zu arbeiten :(


Danke @bueltge. Habe ich also Recht, wenn ich denke, dass er zur manuellen Methode zurückgekehrt ist?
Studioromeo

4
Befolgen Sie aus Liebe zu allem, was heilig ist, nicht die Anweisungen auf dieser Website. Wenn Sie plötzlich Hunderte von Verpflichtungen gegenüber unserer SVN eingehen, werde ich es mir zum Lebensziel machen, Sie zu finden und mit einem Stock zu schlagen. Oder verbannen Sie Sie einfach von WordPress.org. ;) Bitte schreibe nur die endgültige Version fest, nicht jede einzelne deiner Änderungen, die du an git vorgenommen hast. Wir schätzen Ihre Geschichte, aber nur bedeutungsvolle Geschichte. Das Problem mit git ist, dass die Leute jede Menge unnützen Mist begehen und wir das ganze Zeug im Allgemeinen nicht wissen müssen.
Otto

@Otto Lol! Nein, ich möchte einfach nur meine Änderungen für das SVN-Repo bereitstellen können. Derzeit tun dies manuell überschreiben von Dateien in meinem ausgecheckten SVN Repo, aber das ist mühsam und fehleranfällig. Hast du irgendwelche Vorschläge?
Studioromeo

3
Durch eine interaktive Wiederherstellung Ihrer Git-Änderungen können Sie diese zu einem einzigen SVN-Commit zusammenfassen. Weitere Informationen dazu finden Sie hier: stackoverflow.com/questions/158514/…
Otto

1
@Otto „ Ich weiß nicht, ehrlich gesagt, ich benutze Git nicht. Ich kann es als störend empfinden. “ Kann mit einem anderen Zitat (gerade von Ihnen) "beantwortet werde ich persönlich es Ziel meines Lebens macht Sie zu finden und Sie zu schlagen mit einem Stock ":)
Kaiser

1

Nachdem ich diese Antworten gelesen hatte, schob ich eines meiner Plugins auf GitHub und schrieb ein release.sh- Skript. Dieses Skript überprüft mein Plugin von plugins.svn.wordpress.org teilweise mithilfe von --depth immediatesund aktualisiert die Dateien in trunk/und assets/. Dies sollte einen regelmäßigen Push an svn vereinfachen, indem das Repository von wordpress.org verwendet wird, um Releases zu markieren, anstatt den Entwicklungsverlauf zu pflegen:

./release.sh
svn cp trunk tags/0.6
svn ci "Sending 0.6 from https://github.com/foo/bar to wordpress.org"

Eine allgemeinere Version funktioniert möglicherweise mit einer größeren Anzahl von Plugins, verarbeitet gelöschte Dateien und aktualisiert SVN-Tags automatisch basierend auf Git-Tags.


1

Eine ausführliche Beschreibung finden Sie unter So veröffentlichen Sie ein WordPress-Plugin - Git von @EAMann .


Wenn Sie so etwas tun, führen Sie bitte eine interaktive Rebase durch und ändern Sie dann alle zu quetschenden Commits, damit Sie nicht Dutzende kleiner Commits an die SVN-Server senden. Weitere Informationen dazu finden Sie hier: stackoverflow.com/questions/158514/…
Otto

5
@Otto Obwohl ich Ihren Wunsch, die Serverlast zu reduzieren, vollkommen verstehe :) Ich mag atomare Commits wirklich sehr, wenn ich den Code anderer Leute debuggen muss. Hm ... ein automatischer Link zu einem öffentlichen Git-Repository mit einem vollständigen Commit-Verlauf könnte eine nützliche Erweiterung für das Plugin-Verzeichnis sein.
Fuxia

3
Muss mit @Otto darüber einverstanden sein. Der SVN von WordPress.org sollte eigentlich das Release-Repository sein, nicht das Entwicklungs-Repository.
MikeSchinkel

1

Die Frage war alt, aber jetzt ist die Lösung mit GitHub-Aktionen verfügbar. Kürzlich hat GitHub Github Actions den automatisierten Workflow für das GitHub-Repository hinzugefügt.

Und die bekannte Firma 10up hat das "Action WordPress Plugin Deploy" erstellt.

Es ist sehr einfach einzurichten. Und laut @otto müssen wir nicht jede Änderung auf svn verschieben, damit wir die Automatisierung beim Erstellen eines neuen Tags auf github einstellen können.

Unser Github-Plugin leitet den Code automatisch an das WordPress-Repository weiter, wenn wir ein neues Release-Tag erstellen.

Nützliche Links:


0

Ich mache das nicht automatisch, aber es ist ziemlich einfach:

Lassen Sie SVN Truck und Git Master im selben Verzeichnis auschecken. Verwenden Sie Git für fast alles, wie bei jedem Git-only-Projekt.

Stellen Sie die stable tagzu sein trunk, und dann , wenn Sie bereit Release, Tag es in Git zu tun , und drücken Sie dann sofort auf Stamm. Mach dir keine Sorgen /tags, wenn du auf SVN drückst , da dein Release-Verlauf in Git (und Github) sicher ist.

Das ist alles.

So reinigen Sie es, ich hinzufügen .svnzu .gitignore, und .git(und tests/, phpunit.xmlusw.) von SVN ignoriert.

Ein release.sh-Skript wäre eigentlich nichts anderes als das Folgende (sobald die Versionsnummer im Code aktualisiert wurde und alle an Git übergeben wurden):

git tag $1
svn ci -m"Release: $1"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.