1. A non-transitory computer readable medium having stored therein program instructions that, when executed by a computer system, direct the computer system to perform a method of version control, the method comprising: executing a plurality of virtual machines from a plurality of derivative versions of an ancestor data volume, wherein the ancestor data volume and the plurality of derivative versions each comprise a plurality of files; tracking modifications to the plurality of files in each of the plurality of derivative versions; and merging the plurality of derivative versions with the ancestor data volume based on the modifications.