10. A method for implementation by one or more data processors comprising: accepting a selection of a destination document on a client device; converting the destination document into a destination document tree hierarchy; flattening the destination document tree hierarchy into a destination document hash table, comprising a set of destination document keys and a set of destination document values; retrieving the set of destination document keys from the client device; retrieving a source document, wherein the source document is a second version of the destination document, from a server device; converting the source document into a source document tree hierarchy; flattening the source document tree hierarchy into a source document hash table, comprising a set of source document key-value pairs; identifying a source document key-value pair, comprising a key and a value, wherein the key is not in the set of destination document keys; adding the source document key-value to a changelist; identifying a destination document key, wherein the destination document key is not a key in a key-value pair in the set of source document key-value pairs; and adding the destination document key to the changelist; and sending the changelist to the client device.
18. The method of claim 10 , wherein the destination document is selected by a user.