SVN-Externals anlegen
Aus PapayaCMS
Wenn Sie eigene Webprojekte mit papaya CMS implementieren und ein eigenes SVN-Repository betreiben, können Sie Verzeichnisse des öffentlichen papaya-SVN als externals einbinden. Sie müssen also nicht umständlich papaya CMS aus dem öffentlichen papaya-SVN exportieren und in ihrem SVN-Repository einchecken.
Inhaltsverzeichnis |
Was sind Externals?
Ein External bezeichnet ein Verzeichnis, das in einem anderen SVN-Projekt verwaltet wird, das unter Umständen auch auf einem anderen SVN-Server liegen kann. Wenn Sie den Quellcode dieses externen Projekts in Ihr eigenes Projekt einbinden können, müssen Sie nicht den Quellcode umständlich aus dem anderen Repository exportieren und in Ihr Projektverzeichnis einchecken, sondern definieren eine Einbindung in Form einer External. Der Vorteil besteht darin, dass der Quellcode, den Sie auf diese Weise einbinden, bei jedem Update aktualisiert wird und Sie somit immer die aktuellen Bugfixes sowie neuere Features haben.
Eine External wird als Property eines Verzeichnisses gesetzt. Der Kommandozeilenaufruf kann wie folgt aussehen:
svn propedit "svn:external" system http://svn.papaya-cms.com/trunk/papayaCMS/papaya-lib/system
Der oben bezeichnete Befehl setzt im aktuellen Verzeichnis ein svn:external-Property, das das externe Projektverzeichnis papaya-lib/system aus dem trunk des papaya-SVN in das lokale Unterverzeichnis system setzt. Dieses lokale Unterverzeichnis ist noch nicht angelegt.
Wenn Sie im aktuellen Verzeichnis anschließend ein svn update ausführen, wird das Unterverzeichnis system angelegt und die Daten aus dem externen Projektverzeichnis in dieses Unterverzeichis kopiert.
Aufbau des SVN-Repositorys
Die folgende Tabele beschreibt die grundlegenden Verzeichnisse des papaya-Repositorys. Entwickler, die bereits mit SVN oder CSV gearbeitet haben, dürfte diese Aufteilung vertraut sein:
| Pfad | Bedeutung |
|---|---|
| svn.papaya-cms.com/trunk | Verzeichnis mit der aktuellen Entwicklungsversion. |
| svn.papaya-cms.com/tags | Verzeichnis mit den stabilen Versionen des papaya CMS. |
| svn.papaya-cms.com/branches | Verzeichnis mit den (stabilen) Builds. |
Wenn Sie ein Webprojekt in ihrem eigenen SVN verwalten, dürften Sie daran interessiert sein, immer die stabilste Version von papaya CMS zu benutzen. Auf diese Weise schließen Sie Fehler aus, die sich in die aktuelle Entwicklungsversion von papaya CMS (trunk) einschleichen können.
Es bietet sich an, den aktuellsten Stable Release von papaya CMS zu benutzen, der im tags-Verzeichnis verwaltet wird. Das tags-Verzeichnis hat folgende Struktur (ausgehend von der Basis-URL des Repositorys):
./tags/<versionsnummer>/papayaCMS/
Das Element <versionsnummer> kann durch die jeweilige Nummer der papaya-Release-Version ersetzt werden. Aktuell ist Version 5.0.5. Unterhalb von ./papayaCMS/ finden sich alle Verzeichnisse von papaya CMS.
Verzeichnisse für external-Einbindung auswählen
Sie können folgende Verzeichnisse aus dem aktuellen Tag direkt in Ihr SVN-Projekt als external einbinden (Pfade ausgehend vom aktuellen Tag ./tags/5.0.5/papayaCMS/):
./papaya
Anschließend müssen Sie folgende Verzeichnisse für Ihr SVN-Projekt anlegen und committen:
- papaya-lib und papaya-lib/modules
- papaya-data und papaya-data/templates
- papaya-themes
Das Verzeichnis papaya-lib
Für das Verzeichnis papaya-lib müssen Sie folgende Externals aus dem oben genannten papaya-Tag (./tags/5.0.5/papayaCMS/) definieren:
./papaya-lib/system ./papaya-lib/external
Für das Verzeichnis ./papaya-lib/modules müssen Sie folgende Externals aus dem oben genannten papaya-Tag definieren:
./papaya-lib/modules/_base/ ./papaya-lib/modules/free/ ./papaya-lib/modules/gpl/
Das Verzeichnis papaya-data
Wenn Sie das Demo-Template in Ihrem Projekt benötigen, beispielsweise als Referenzimplementation für Templates, können Sie sich folgendes Verzeichnis als External in Ihr Projekt definieren. Dieses Beispiel geht davon aus, dass Sie das Verzeichnis papaya-data/templates angelegt haben:
./papaya-data/templates/default-xhtml
Damit das Demo-Template auch korrekt funktioniert, müssen Sie das passende Theme ebenfalls als External in das Verzeichnis papaya-themes einbinden:
./papaya-Themes/default