GIT Workflow, Entwicklung, Deploy, Backup

am 10.03.2011 - 10:35 Uhr in
Hallo,
wir sind gerade dabei dabei ein Portal neu auf Basis von D7 aufzusetzen.
Da ja drupal.org auch auf git umsteigt, wollen wir zur Versionsverwaltung git einsetzen.
Im Netz findet sich dazu ja Einiges, allerdings zumeist in Englisch und recht wenig auf drupal zugeschnitten.
Habe mir jetzt folgendes Setup erstellt:
Ich habe einen VSERVER als DEV-System aufgesetzt auf dem die STAGING-Instanz des Portals läuft und der gleichzeitig das Master-Repository (origin) hält.
Dann habe ich erstmal drupal von drupal.org auf den DEV-Server geclont.
Von diesem habe ich anschließend wiederum einen clon vom Branch 7.0 erstellt, der als Origin dienen soll.
Dazu habe ich einen Branch "core" mit der deutschen Sprachdatei erstellt, der nur die core-Updates von drupal erhalten soll.
Darauf aufbauend dann einen "contrib" Branch, in welchen ich per drush dl die ganzen Module eingecheckt habe, die ich für das Projekt benötige.
Zuletzt dann noch einen "devel" Branch, der die ganzen Entwicklungsmodule (devel, coder, usw.) enthält, die nachher nicht auf den Produktiv-Server sollen.
In meiner gitignore Datei spare ich das files-Verzeichnis und die settings.php aus.
Da ich mit Zertifikatbasiertem SSH arbeite, können die Entwickler einfach das Repo vom Origin auf Ihr Entwicklungssystem clonen und sich die aktuelle
Staging-DB per drush sql-sync holen. Das flutscht auch alles wunderbar.
Ein paar Punkte sind mir da aber noch unklar:
- Ich hatte zuerst das Master-Repository direkt im Web-Verzeichnis der Staging-Instanz eingerichtet, damit die Änderungen nach einem Push von einem Entwickler direkt auf dem Staging zu sehen sind. War mir aber nicht wohl dabei, das Repository innerhalb vom Web-Verzeichnis liegen zu haben, also habe ich das Repository nach /var/git verschoben (quasi als bare Repo) und das Web-Verzeichnis als Working-Dir eingetragen.Da gabs dann aber Konflikte beim Pushen, also habe ich jetzt ein Bare-Repo unter /var/git als Origin und im Webverzeichnis unter /var/www einen weiteren Klon desselben.Das hat jetzt allerdings den Nachteil, dass ich nach einem Push vom lokalen Entwicklungssystem, die Staging-Instanz nicht mehr automatisch updaten kann, oder doch?
- Wie kann ich später, wenn jetzt z.B. ein custom-modul fertig ist, dieses nach dem Testen auf Staging-Server auf den Produktivserver deployen, ohne die devel-module mitzuziehen, die ich da ja nicht benötige?
- Benutzt Ihr überhaupt git auch für das deployen und wenn ja, ist die Live-Instanz auf dem Prod. Server dann einfach nur Klon vom Master-Repo, auf dem die letzte stabile Release ausgecheckt wird.?
- git lässt sich ja eigentlich auch wunderbar für Backups des Web-Verzeichnisses benutzen. Wie stelle ich es an, dass hierfür die gitignore ignoriert wird, damit die settings.php und das files-Verzeichnis (nur fürs Backup) mit ins Backup-Repository gesichert werden
Habe mir zu dem Thema schon Einiges angelesen und ausprobiert, aber an manchen Stellen hakt es einfach noch mit dem Verständnis...
Vielleicht kann ja einer der Profis hier ein paar Tipps abgeben, da ich denke, dass ich nicht der Einzige bin, der sich damit auseinandersetzt.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 6 Stunden
vor 3 Tagen 43 Minuten
vor 3 Tagen 1 Stunde
vor 3 Tagen 5 Stunden
vor 3 Tagen 12 Stunden
vor 5 Tagen 1 Stunde
vor 6 Tagen 3 Stunden
vor 6 Tagen 5 Stunden
vor 1 Woche 2 Tagen
vor 1 Woche 2 Tagen