Use ZFS to establish a deployment cycle

I thought a little bit about using ZFS for an controlled deployment lifecycle. It´s a first version, but should show the idea behind it and what you can do with a filesystem, capable of doing unlimited snapshots: Imagine you are responsible for a website. For example, you work for the website http://www.sundragons.de.You would start with creating some filesystems for your work. As you start, you would create a directory for your development:
bash-3.00# zfs create storage/projects
bash-3.00# zfs create storage/projects/sundragons
bash-3.00# zfs create storage/projects/sundragons/development
bash-3.00# cd /storage/projects/sundragons/development/
As you are cautious, a script snapshots your work once a day right at midnight. So you can get files out of older versions.
bash-3.00# zfs snapshot storage/projects/sundragons/development@20061219
bash-3.00# zfs snapshot storage/projects/sundragons/development@20061220
bash-3.00# zfs snapshot storage/projects/sundragons/development@20061221
After a while, you want to show the website to your customers. A webserver accessible only for your customers refers to the directory /storage/projects/sundragons/preproduction.
bash-3.00# zfs clone storage/projects/sundragons/development@20061221 storage/projects/sundragons/preproduction The customer says “Cool, lets start with it!”. You only rename the filesystem and the production webserver links to /storage/projects/sundragons/production
bash-3.00# zfs rename storage/projects/sundragons/preproduction storage/projects/sundragons/production After your customer leaved the door, you do some cleanup
bash-3.00# zfs promote storage/projects/sundragons/production
bash-3.00# zfs destroy -r storage/projects/sundragons/development
Later at the same day, the customer wants some changes, as he thinks that orange was a bad idea, and he wants a calm grey as a background. Customer is king, and heck … you told him that orange looks really bad. No problem. You generate a new development structure from you actual production version.
bash-3.00# zfs snapshot storage/projects/sundragons/production@developmentstart20061222
bash-3.00# zfs clone storage/projects/sundragons/production@developmentstart20061222 storage/projects/sundragons/development
bash-3.00# zfs promote storage/projects/sundragons/development
You edit your website
bash-3.00# cd /storage/projects/sundragons/development/
bash-3.00# ls
blah.gif index.html oerks.gif
bash-3.00# vi index.html
You bring up the preproduction site:
bash-3.00# zfs snapshot storage/projects/sundragons/development@20061222
bash-3.00# zfs clone storage/projects/sundragons/development@20061222 storage/projects/sundragons/preproduction
The customers says “Now it´s perfect”. And you bring it into production.
bash-3.00# zfs destroy storage/projects/sundragons/production
bash-3.00# zfs rename storage/projects/sundragons/preproduction storage/projects/sundragons/production
And the cycle can start over and over again. And as the snapshots wander with the promoted clone, you can see, how your work evolved with the time.