git und WordPress-Entwicklung

git ist ein sehr mächtiges Werkzeug zur Versionsverwaltung. Es ist ein verteiltes System. Dies bedeutet, dass man ohne Verbindung zu einem zentralen Server Entwicklungszweige und tags anlegen kann. Mehr Informationen gibt es auf der Projektseite.

Wer WordPress plugins schreibt und sie auf der WordPress.org Seite für plugins veröffentlicht sehen möchte muss svn benutzen. Dies kann etwas frustrierend sein wenn man erst einmal die Fäigkeiten von git kennen gelernt hat.

Zum Glück kann git auch mit svn kommunizieren, hierfür gibt es git-svn. Hier ist eine Liste von Befehlen die man einsetzen kann.

git svn init -s http://svn.wp-plugins.org/Ihr_plugin

Hiermit wird ein lokales git Repository kreiert. Innerhalb des Repositorys kann man folgende Befehle benutzen:

svn log http://svn.wp-plugins.org/your_plugin

Der svn Befehl listet die svn revisions. Mit der Nummer des letzten commits kann man dann

git svn fetch -rNNNNN
git gc
git branch -a

Ersetze NNNN mit der Nummer des entsprechenden commits. Der zweite Befehl räumt im lokalen Repository auf und komprimiert Dateien. Dies wird den Festplattenverbrauch deutlich verringern. Der letzte Befehl listet alle Entwicklungszweige auf, lokal und auf dem svn server.

Achtung: Wenn der Fehler fatal: refs/remotes/trunk: not a valid SHA1 auftritt wurde wahrscheinlich versucht ein svn tag zu fetchen. Das scheint ein Fehler in git svn zu sein (bestätigt bis 1.7.2.3). Als Lösung einfach den vorherigen commit fetchen, der kein svn tag ist.

Ein normaler Arbeitsablauf kann so aussehen:

... bearbeiten ...
git commit -m "Tolles neues Feature erstellt" -a
git svn dcommit

Mit dem letzten Befehl wird der neue Programmcode auf den svn-Server hoch geladen. Gerade wenn man mit dem WordPress-Server interagiert muss man gelegentlich tags anlegen. Das geht mit foldendem Befehl:

git svn tag version

Hiermit wird ein tag im entfernten svn Repository erstellt. Hierfür scheint mindestens git 1.6.1 nötig zu sein. Mit diesen Beispielen sollten die ersten Schritte mit git für die WordPress plugin Entwicklung leichter fallen. Die git Dokumentation sollte auf jeden Fall für weitere Informationen gelesen werden.

2 Kommentare

  1. avatar
    schrieb diesen Kommentar on
    Also alles lokal taggen und dann ins SVN committen ist nicht drin?
    1. avatar
      schrieb diesen Kommentar on
      Doch das geht, allerdings kann man lokal wohl nur git tags anlegen. git svn tag braucht eine Verbindung zum repository.

Eine neue Diskussion eröffnen

Antwort abbrechen
Markdown. Syntaxhervorhebung mit <code lang="php"><?php echo "Hallo, Welt!"; ?></code> etc.