Contao und SVN

Wer seine Änderungen im Quellcode nachverfolgen will, oder mit mehreren Entwicklern an einem Projekt arbeitet, kommt an einer Versionsverwaltung nicht vorbei. Ich beschreibe hier die notwendigen Schritte ein Contao unter SVN-Versionskontrolle zu stellen. Ich verwende eine Eclipse IDE mit funktionierendem SVN-Plugin.

1. Schritt: Ein neues PHP-Projekt in Eclipse anlegen (Eclipse PDT)

2. Schritt: In das neue Projekt alle Contao-Dateien kopieren.

3. Schritt: Contao wie gewohnt über das Installationstool installieren.

4. Schritt: Rechtsklick auf das Wurzelverzeichnis und im Kontextmenü auf Team > Share Project klicken.

Projekt im SVN anlegen

5. Schritt: In den folgenden Dialogen wird das SVN Repository ausgewählt. Ich bevorzuge das „Single project layout“, d. h. eine Struktur wie z. B. repository/myproject/trunk

SVN Share Dialog - Einstellungen festlegen

Mit „Next“ gehts dann weiter zu folgendem Dialog:

Der zweite Schritt des SVN Tutorials

Den Haken bei „Launch the Commit Dialog for the shared resources“ bitte rausnehmen, da wir vor dem Einspielen der Dateien noch was einstellen wollen.

6. Schritt: Bestimmte Dateien oder Verzeichnisse aus der Versionskontrolle ausschließen (svn:ignore). Einige Dateien generiert Contao selbständig oder können durch das Contao Backend verändert werden. Es macht keinen Sinn diese Dateien unter Versionskontrolle zu stellen, da sich diese ja serverseitig verändern können. Wir klicken also rechts auf das Wurzelverzeichnis und anschließend im Kontext-Menü auf Team > Set property. Dort setzen wir vorerst folgende Einstellungen:

Anschließend können wir nach und nach die Verzeichnisse ins SVN einspielen (commit):

  • contao (komplett)
  • plugins (komplett)
  • typolight (komplett)
  • system (vorerst nur den Ordner)
  • templates (vorerst nur den Ordner)
  • tl_files (vorerst nur den Ordner)

Dateien ins SVN einspielen (commit)

Nun können wir noch folgende Dateien bzw. Verzeichnisse dem svn:ignore-Property hinzufügen:

  • system/config/localconfig.php
  • system/logs (alle *.log Dateien)
  • system/tmp (alle Dateien)
  • system/html (alle Dateien)
  • tl_files (alle Dateien)
  • templates (alle Dateien)

Außerdem sollte die Datei localconfig.php, die später auf dem Server benötigt werden und jetzt nicht mehr unter Versionskontrolle stehen kopiert und als .dist abgespeichert werden (Dateiendung frei wählbar) z. B. localconfig.php kopieren zu localconfig.php.dist. Auf dem Server kann man nach dem Checkout diese Dateie zur ursprünglichen Form umkopieren.

Wichtig ist, dass während der Einrichtung auf dem Server alle .htaccess Dateien, die nicht unter Versionskontrolle stehen, wieder in die entsprechenden Verzeichnisse kopiert werden (z. B. im Ordner templates). Leider kenne ich keine Möglichkeit bestimmte Dateien aus einem svn:ignore auszuschließen.

Mögliche Probleme:

Sollte innerhalb Eclipse eine Fehlermeldung „svn: Directory ‚xyz‘ is out of date“ auftauchen, ist es das Beste den Commit mit TortoiseSVN direkt im Windows Explorer vorzunehmen.

Kommentar verfassen