Mit ZFS kenne ich mich leider noch nicht so aus. Mein erster Gedanke war Plan 9, bzw. dessen Union Mounts. Das Konzept gibt es inzwischen auch bei den BSDs und Linux. Aber auch
Clone bei ZFS scheint ja in die gleiche Richtung zu gehen.
Auf ein schreibgeschütztes Originalverzechnis wird ein beschreibbares Verzeichnis "drübergemountet". Lesezugriffe schlagen auf das "untere" Original durch falls es noch keine Kopie im "oberen" Verzeichnis gibt. Beim ersten Schreibzugriff auf eine Datei wird eine Kopie im beschreibaren Verzeichnis angelegt.
Beim angedachten Verwendungszweck gäbe es aber noch ein paar Fallen...
manche kunden werden vielleicht veränderungen an der software vornehmen oder dinge löschen oder hinzufügen.
problematisch ist wenn ich mal z.b. ein update einstellen will oder die scripte sonst wie verändern.
Was passiert denn mit den vom Kunden vorgenommenen Veränderungen wenn Du ein Update einstellst bzw. das Original veränderst? Das klingt nach einem klassischen Konfigurationsmanagement-Problem. Vielleicht gibt es aus der Ecke auch Lösungsansätze (CVS, Subversion, Mercurial...)? Ist aber wahrscheinlich alles nichts womit man den armen Kunden belästigen kann.
ein anderer gedankengang wäre hier mit links zu arbeiten aber das ist imho doch etwas zu umständlich und es gibt noch probleme dabei.
Ich war mehrere Jahre für ein Projekt bei einem Kunden da hat das Konfigurationsmanagement genau so funktioniert.
Beim Auschecken eines Moduls bekam der Entwickler erstmal nur ein Verzeichnis voller Links auf die jeweils aktuelle (schreibgeschützte) Version auf dem Server. Beim Editieren wurde daraus eine beschreibbare Datei. Beim Einchecken hat dann ein SUID-Skript(!) die Datei als neue Version auf den Server kopiert und wieder durch einen Link darauf ersetzt.