Ich habe Probleme mit der Abdeckung aller Probleme mit Software Configuration Management auf einem CMS (speziell Joomla!). Ich schreibe benutzerdefinierte Vorlagen, natürlich, aber auch benutzerdefinierte Module und Komponenten. Diese Websites und Anwendungen sind für Kunden, nicht intern.
Ich möchte nicht nur den Code der Vorlagen und Komponenten, sondern auch die Konfiguration der Website versionieren, denn ich möchte, dass sie so schnell wie möglich für Korrekturen oder die Übergabe an jemand anderen bereit ist. Im Moment bedeutet das, dass ich eine vollständige Joomla!-Installation für jede Website in SVN speichere, einschließlich der installierten Versionen von Komponenten und Vorlagen, und dass ich tatsächliche Datenbankexporte speichere. Für Komponenten bewahre ich auch die "verpackte" Version des Codes auf (siehe unten). Für die Vorlagen mache ich mir normalerweise keine Mühe, da man sie einfach in die Joomla!
Das Problem mit dieser Einrichtung, die ich derzeit debattieren ist in benutzerdefinierten Komponente Entwicklung. In Joomla! (und den meisten anderen CMS) werden Erweiterungen in der Regel mit einem Web-Installer bereitgestellt - man kann (zumindest anfangs) die Dateien nicht einfach in einem bestimmten Ordner ablegen, da DB-Änderungen erforderlich sind. Das Joomla!-Installationssystem sorgt für DB- und Dateimigration mit Installations- und Deinstallationshaken, so dass es ein ziemlich vernünftiges System für die Bereitstellung ist.
Im Moment bin ich entweder: 1) direkt an der installierten Komponente arbeiten, indem ich Dateien hinzufüge und ändere und sie dann manuell in die gepackte Version der Komponente kopiere, oder 2) ich arbeite an der paketierten Komponente und benutze das Installationsprogramm, um die Ergebnisse zu sehen. Diese Option dauert in der Regel einfach zu lange, hat aber den Vorteil, dass der Code "releasefähig" bleibt, insbesondere im Hinblick auf DB-Migrationen.
In beiden Fällen werden die Änderungen vor dem Einchecken in beide Versionen der Dateien dupliziert, und diese Duplizierung scheint mir ein Geruch zu sein.
Und, macht das sonst noch jemand? Gibt es bessere Möglichkeiten?