Git, Shopware und leere Ordner

Das Dateiversionsverwaltungssystem Git ist schlank, schnell und portabel. Git hantiert stets mit Objekten, nämlich Dateien. Ordner werden erst angelegt, wenn sich Dateien darin befinden, ansonsten erfasst Git diese erst gar nicht. Das hat in manchen Projekten unschöne Nebeneffekte. So ist beispielsweise das Shopsystem Shopware auf die strikte Einhaltung der Ordnerstruktur angewiesen, um zu funktionieren.


Fehlt auch nur ein Ordner (beispielsweise im Ordner "cache" oder in "templates"), quittiert Shopware den Dienst. In der neuesten Log-Datei im Ordner "logs" wird beispielsweise ausgegeben:

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The directory "C:\...\cache\doctrine\filecache\" does not exist'

Um die Problematik zu lösen, platziert man in den root-Ordner des Repositorys, in dem die leeren Ordner noch vorhanden sind, einfach folgende php-Datei und führt diese aus:

4287bb0575ce0f5ea732

Die Datei geht dabei rekursiv die komplette Ordnerstruktur durch und legt in leere Ordner die leere Datei "empty-folder". Nachdem man nun die Änderung gepusht und auf dem problematischen Repository gepullt hat, ist die Ordnerstruktur nun komplett und Shopware funktioniert ohne Probleme.

Zurück