Patent ID: 8489549

Claim:
A computer-implemented method, comprising: at a computing device, wherein there is an instance of a virtual file system running on the computing device and the virtual file system has an associated commit tree that includes a first branch corresponding to a first revision of the virtual file system: receiving a request to synchronize the first revision of the virtual file system with a plurality of storage devices; and in response to the request, retrieving one or more blocks from the plurality of storage devices and generating a second branch in the commit tree using the retrieved blocks, wherein the second branch corresponds to a second revision of the virtual file system and the second revision of the virtual file system was generated at a different computing device and synchronized with the plurality of storage devices before the computing device receives the synchronization request and the retrieved blocks correspond to updates to the virtual file system at the different computing device; and processing the retrieved blocks in a predefined order, further including: classifying the updates into at least a first group of components added to the second revision of the virtual file system, a second group of components removed from the second revision of the virtual file system, and a third group of components modified in the second revision of the virtual file system; merging a first component of a first revision of the virtual file system with a corresponding component of the second revision of the virtual file system if each conflict between the first component of the first revision and the corresponding component of the second revision can be automatically resolved according to a predefined set of rules, the rules including: keeping a file of a predefined type from a revision of the virtual file system that has a more recent timestamp in the merged revision, keeping files that are newly added to either revision of the virtual file system in the merged components of revisions, and keeping files that are only removed from one revision of the virtual file system in the merged components of revisions; identifying a second component of the first revision of the virtual file system as being conflicted with a corresponding component of the second revision of the virtual file system if at least one conflict between the second component of the first revision and the corresponding component of the second revision cannot be resolved by the predefined set of rules; and presenting the at least one conflict between the second component of the first revision and the corresponding component of the second revision to a user of the computing device for a manual resolution of the at least one conflict.