1. A non-transitory computer-readable medium having stored thereon instructions adapted to be executed by a processor in a computer associated with a local file system to: transform a first complete copy of the local file system at a first point-in-time to a first XML-based data structure, the first XML-based data structure corresponding to a first version of the local file system, the local file system having an architecture corresponding to a local operating system running on the computer, wherein the first data structure comprises, for at least one file of the local file system, a tree having a root element that includes all the data from one or more inode or inode-equivalent data structures of the local file system describing the file, and a first object that contains at least a portion of the file, and one or more directory elements associated with the root element; send the first XML-based data structure to a cloud-based storage; intercept local file system data traffic including at least one change event to the local file system that occurs at a second point-in-time, the second point-in-time occurring after the first point-in-time, wherein the at least one change event includes a modification of the file; and upon the at least one change event, transform a second complete copy of the local file system at the second point-in-time to a second XML-based data structure, the second XML-based data structure corresponding to a second version of the local file system; wherein the second XML-based data structure includes pointers to data structures and data objects in the first XML-based data structure that did not change as a result of the at least one change event and at least one new data structure and at least one new data object corresponding to the at least one change event, such that a new version of the file is represented by a first pointer to said first object and a second object, the second XML-based data structure further comprising a new version of the one or more inode or inode-equivalent data structures that describes a relationship between said first and second objects, the first pointer representing an unchanged portion of the file, the second data structure representing the modification of the file.