Git Repository mit allstar moduleset von Freistil Consulting

Jochen Lillich von Freistil Consulting pflegt ein zentrales Drupal Git Repository auf das Jedermann lesend zugreifen kann. In diesem Git Repository sind nicht nur drei verschiedene Versionen des Drupal Core enthalten (Drupal Standard, Pressflow, Cocomore), sondern auch jeweils eine Version mit einem vorbereiteten Modulset. Enthalten sind gute 50 Module, die auf den meisten Seiten zum Einsatz kommen.

Der Vorteil von diesem zentralen git ist, dass es laufend aktualisiert wird. Laut Jochen Lillich derzeit noch manuell, in naher Zukunft aber automatisiert per drush make. Zusammen mit den wunderbaren Möglichkeiten von Git kann man die bereit unter Versionsverwaltung stehende eigene Website durch das neu hinzugefügte obige Git Repository automatisch aktuell halten.

Hierzu reicht ein

git remote add allstars git://vcs.freistil-hosting.net/drupal/6.x-stable-allstars

im Hauptverzeichnis seiner eigenen Website. Durch das anschließende

git pull allstars master

ist die eigene Drupalinstallation nun mit dem zentralen Git verheiratet und der Drupalcode inklusive der Allstarsmodule in das eigene Repository eingefügt. Sofern schon Dateien im eigenen Repo vorhanden waren, wird git versuchen diese automatisch zu vereinen (merge), sofern es dabei zu Konflikten kommt müssen diese aufgelöst werden.

In sites/all/modules/allstars sind die Module enthalten, die von Jochen Lillich und seinem Team zentral gepflegt werden. Nun kann es ja vorkommen, dass man schon selbst Module in sites/all/modules gespeichert hatte und diese ebenfalls im allstars Repository vorhanden sind. Für diesen Fall müssen die Module aus dem eigenen Repository entfernt werden. Zum Beispiel über dieses kleine Bash Script, das man im Ordner sites/all/modules ausführen sollte. Es entfernt die ebenfalls im eigenen modules Ordner enthaltenen Module, die auch per allstar vorhanden sind aus dem git.

#!/bin/bash
</code><code>cd allstars
for file in *; do
   if [ -d $file ]; then
      if [ -d ../$file ]; then
        echo $file gibts auch im eigenen modules ordner.
        git rm -r ../$file
      fi
   fi
done
cd ..

Wenn man zukünftig schauen will, ob in dem zentralen git aktuelle Module oder der aktuelle Core enthalten ist, kann man im Drupal root einfach per folgendem Befehl diese Änderungen in sein eigenes Repository ziehen und anschließend seinem eigenen Deployment unterziehen.

git pull allstars master

Kommentare

Guter Blogpost und klasse Hinweis, Mirko. Toll auch, dass Jochen das anbietet!

Ich überlege gerade, wann/inwiefern es sinnvoll ist, ein eigenes default-drupal git-repository zu unterhalten...
Entweder als quasi-'proxy' zu bspw. Jochens, oder komplett selbst gepflegt und ebenfalls per drush make automatisiert geupdated.
Bspw. um ein eigenes Default-Paket immer up-to-date gepflegt zu halten mit ausgewählten weiteren (oder eben auch einfach anderen oder weniger!) Brot- und Butter-Modulen, stets verwendeten eigenen Features etc.
hm....

Der Reiz an der Git-Lösung ist IMHO, dass die Codebasis in zwei Git-Repos gepflegt werden kann. Du hast selbst eines, in dem Du Deinen Website-Code (alles: den aus dem "default-drupal-repo" und Deine hinzugefügten Module) eincheckst, und mergst regelmäßig die Aktualisierungen von Jochen/drupalconcept/etc. in Deine Codebasis. Oder nutzt das o.g. Git-Repo nur zum Initialisieren, pushst es dann in Dein Repo und aktualisierst das gesamte Projekt mit drush+Co. selbst.

HTH, Dirk

PS @Mirko: Toller Beitrag, habe gerade meine erste _vorhandene_ Website wie von Dir beschrieben nach Git migriert.

Viele Grüße, Dirk

Neuen Kommentar schreiben