Anzeige
Anzeige
Software & Entwicklung

Der Einstieg in die Extension „np_subversion“: Versionskontrolle für TYPO3-Projekte

Für die tägliche Arbeit im Team hat sich das freie Versionskontrollsystem Subversion bewährt. Dessen Funktionen integriert seit kurzem die Extension „np_subversion“ nahtlos ins TYPO3-Backend. Die Extension beseitigt das Manko eines fehlenden Kommandozeilenzugriffs und bringt interessante Verwaltungs- und Verteilungsmöglichkeiten mit sich. Schließlich erfordert auch die Entwicklung TYPO3-basierter Webanwendungen fortwährende Veränderungen am TypoScript, im HTML-Markup und in den Extensions.

4 Min.
Artikel merken
Anzeige
Anzeige

Der vorliegende Artikel richtet sich an den erfahrenen TYPO3-Entwickler, der bereits Kenntnis von der Arbeitsweise und der Terminologie eines
Subversion-Systems hat. Ihm gibt die Extension „np_subversion“ weitreichende Hilfsmittel zur
Verwaltung und Erkennung von Änderungen sowie zur Verteilung von
zentral bereitgestellten Lösungen an die Hand. Eine bestehende Subversion-Infrastruktur mit
mindestens einem Sourcecode-Repository ist allerdings Voraussetzung. Weiterhin benötigt „np_subversion“ auf dem TYPO3-System einen funktionsfähig eingerichteten
Subversion-Kommandozeilen-Client. Dieser steht für nahezu alle
Betriebssysteme zur Verfügung und kann über die Paketverwaltung des
eingesetzten OS oder in Binär- oder Quellcodeform bezogen werden [1]. Grundsätzliche Hilfestellung zur Installation von
Subversion bieten die distributionsspezifischen Anleitungen sowie das
Subversion-Handbuch des Herstellers [2], das auf Deutsch im O’Reilly-Verlag erschienen ist [3].

Konfiguration der Extension

Anzeige
Anzeige

Nach der Installation der Extension aus dem TER (Extension Key: „np_subversion“) müssen einige grundlegende Konfigurationsoptionen gesetzt werden. Sie erlauben die flexible Anpassung der Erweiterung an bestehende Entwicklungsinfrastrukturen. Neben dem Pfad zum ausführbaren Programm „svn“ (Unix) beziehungsweise „svn.exe“ (Windows) werden Angaben zu Konfigurations- und Backupverzeichnissen, zum korrekten Encoding der Commitnachrichten sowie zur gewünschten Art und Dauer der Authentifizierungsdaten-Speicherung erwartet. Eine detaillierte Beschreibung aller Konfigurationsparameter finden Sie im Handbuch zu „np_subversion“.

Tipp: Subversion speichert in der Standardkonfiguration die Authentifizierungsdaten im Homeverzeichnis des ausführenden Benutzers. Dieses Verhalten ist in Multi-User-Umgebungen (in diesem Fall: in allen TYPO3-Instanzen, die im selben Webserverkontext ablaufen) nicht gewünscht und sollte abgestellt werden. Setzen Sie dazu den Pfad zur Subversion-Konfiguration mit dem Parameter „svn_config_dir“ und ergänzen Sie die svn-Konfigurationsdatei um folgende Zeilen:

Anzeige
Anzeige
CONFIG
[auth]
store-passwords = no
store-auth-creds = no

Listing 1

Auch der Repository-Zugriff über HTTP-Proxies oder SSH-Tunnel, Ausschlussmuster (z. B. für .project-Dateien der Eclipse-IDE) und sonstige Tricks lassen sich über Subversion-Bordmittel in die Gesamtlösung integrieren. Hierzu bietet wiederum das Subversion-Handbuch eine gute Referenz.

Anzeige
Anzeige

Um gezielt zwischen den Anwendungsfällen „Bereitstellung und Update“ und „versionierte Entwicklung“ zu trennen, definiert „np_subversion“ zwei Typen von Datenbankeinträgen: Repository- und Target-Records. Im „Repository Record“ werden die Basis-URL des Subversion-Servers sowie eventuell ein vordefinierter Benutzerzugang hinterlegt. Für die Verwaltung von Extensions oder beliebiger fileadmin-Unterverzeichnisse werden „Target Records“ erstellt. Dabei muss zwischen Verzeichnissen innerhalb und außerhalb des fileadmin-Astes unterschieden werden, da das Dateilistenmodul standardmäßig keine Zugriffe außerhalb des Verzeichnisses „fileadmin/“ gestattet. „np_subversion“ führt daher eine Funktionsbox mit Zusatzfunktionen für die zutreffenden Subversion-Operationen „checkout“, „export“, „update“ und „commit“ ein (siehe obige Abbildung).

Anwendungsfälle in der Praxis

Deployment von Extensions in Kundenprojekten: Mit „Export Target“ Records für alle eingesetzten Extensions und intelligentem Packaging aller benötigten Ressourcen (Templates, TypoScript, Assets) eignet sich „np_subversion“ sehr gut für die Bereitstellung und das Update fertiger Lösungen in Produktionsumgebungen. Per „svn export“ werden die benötigten Daten aus dem Repository extrahiert, .svn-Metaverzeichnisse werden nicht angelegt. Der Exportvorgang erzeugt optional ein Backup von bestehenden Daten. Eine geschickte Strukturierung des Sourcecode-Repositorys vorausgesetzt, können so auch spezifische Anpassungen für einzelne Kunden (Branches) oder benannte Releases beziehungsweise Bugfixes (Tags) mit minimalem Aufwand verteilt werden.

Anzeige
Anzeige

Verteilte TS-, Markup- und Extension-Entwicklung: Über „Working Copy“ Records, zum Beispiel für das Verzeichnis „fileadmin/templates/“ und die Extensions in „typo3conf/ext/“, kann der komplette Entwicklungsprozess versioniert und flexibel dezentralisiert werden. So wird entweder direkt auf dem Server oder in verteilten Arbeitskopien ohne Versionschaos gearbeitet. „np_subversion“ stellt den Status der versionierten Daten mit den von TortoiseSVN [4] bekannten Dateisymbolen dar und synchronisiert mit wenigen Klicks (update, commit) die getätigte Arbeit.

Durch die Kombination der Methoden zusammen mit einer cleveren Auslagerung der TYPO3-Konfiguration ins Filesystem, wie es zum Beispiel Franz Ripfel in seinem Podcast-Beitrag erläutert [5], lässt sich ein Großteil des Webprojekts transparent verwalten.

Ausblick auf die zukünftige Entwicklung

Ein kontinuierlicher Ausbau der Extension, die hauptverantwortlich vom Softwarearchitekten Bastian Waidelich erstellt wurde, ist vorgesehen. Konkrete Pläne bestehen bereits für etliche Zusatzfunktionen:

Anzeige
Anzeige
  • Anzeige der Unterschiede zwischen lokaler Arbeitskopie und der BASE-Revision („svn diff“)
  • Anzeige der gegenüber der Arbeitskopie im Repository geänderten Daten („svn status -u“)
  • Hooks für die Ausführung von Pre- und Post-Operationsskripten, zum Beispiel für Mail-Notifications oder die Korrektur von Filesystem-Berechtigungen
  • weiterführende Integration der Deployment- und Update-Mechanismen mit dem Extension Manager beziehungsweise Install-Tool, zum Beispiel zum automatischen Ausführen von Datenbankstrukturvergleichen bei Änderungen an „ext_tables.sql“
  • Wrapperfunktionen für den CLI-Modus
  • vollständige Übersetzung des Moduls in alle vorliegenden Backendsprachen
  • Prüfung der letzten verbliebenen XCLASSes und gegebenenfalls Ersetzung durch Hooks, die momentan im TYPO3-Kern noch nicht vorhanden sind. Der Kontakt mit den zuständigen Core-Teammitgliedern wird aufgenommen.

Der Extension-Autor freut sich über Verbesserungsvorschläge, Fehlermeldungen, Übersetzungen von Extension und Dokumentation sowie sonstiges Feedback. Auf der Projektseite zu „np_subversion“ (www.network-publishing.org) stellt die Agentur network.publishing eine Plattform dafür bereit.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige