Wenn man Drupal 8 via composer installiert (https://github.com/drupal-composer/drupal-project) ist die Empfehlung und die Default-Einstellung hinsichtlich git, dass die Drupal Corefiles (und auch die Contrib-Modules) nicht mit git versioniert werden sondern rein über composer gemanagt werden. Während der Entwicklung an einem Projekt schleust man gerne mal Code in bestimmten Core-Files ein um z. B. eine Debug-Ausgabe in einer core-Funktion zu erzeugen. Wenn die Corefiles via git verwaltet sind, kann man solche Änderungen leicht rückgängig machen (revert) via git checkout ...
Werden die Files über composer verwaltet lässt sich das nicht so einfach erreichen. Composer erkennt Änderungen an den schon heruntergeladenen Dateien nicht und z. B. ein erneutes composer install sorgt nicht dafür dass composer die Files neu lädt selbst wenn Änderungen bestehen. Ein Composer Reinstall Kommando gibt es bisher nicht (https://github.com/composer/composer/issues/2901).
Um nun die Drupal Core Files neu zu laden gehe ich wie folgt vor: Ich löschen den Ordner core komplett und führe dann composer install durch. Dann werden die Core-Files neu geladen. Da composer hier zumeist aus dem Cache installiert, geht das auch schnell von statten und erfordert nicht den kompletten erneuten Download.
Folgendes ist dabei zu bedenken:
- composer install führt auch Updates von Composer-Projekten durch je nachdem wie die Einstellungen bezüglich Updates getroffen sind in composer.json. Wenn man Updates vermeiden will muss man die Version entsprechend festsetzen für die Projekte die nicht upgedatet werden sollen.
- Die Reinstallation in der beschriebenen Form sorgt nicht dafür dass die Files im document root neu geladen werden, diese als "Scaffolding files" bezeichneten Dateien können über das "Scaffolding Plugin" (https://github.com/drupal-composer/drupal-scaffold) gemanagt werden.
Die gleiche Methode kann man auch anwenden um ein contrib-Modul neu zu laden. Man löscht dann den Modul-Ordner aus dem modules/contrib-Verzeichnis und installiert via composer install neu. Auch hier muss man beachten dass composer install ggf. auch Updates durchführt.
Update 08.01.2018:
Ich arbeite mittlerweile lieber mit dem folgenden composer Plugin zum Instanziieren einer Drupal 8 Installation via composer. Das gefällt mir besser. Dieses Plugin setzt auch nicht die defaults hinsichtlich .gitignore wie es https://github.com/drupal-composer/drupal-project tut. Beim Debuggen von Code ist das mitunter nicht so schön wenn Drupal Core und Contrib Module nicht in git enthalten sind (siehe oben)
Neuen Kommentar schreiben