1. A non-transitory computer readable storage medium, comprising executable instructions to: accept a selection of a destination document on a client device; convert the destination document into a destination document tree hierarchy; flatten 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; retrieve the set of destination document keys from the client device; retrieve a source document, wherein the source document is a second version of the destination document, from a server device; convert the source document into a source document tree hierarchy; flatten the source document tree hierarchy into a source document hash table, comprising a set of source document key-value pairs; identify a source document key-value pair, comprising a key and a value, wherein the key is not in the set of destination document keys; add the source document key-value to a changelist; identify 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 add the destination document key to the changelist; and send the changelist to the client device.
1. A non-transitory computer readable storage medium, comprising executable instructions to: accept a selection of a destination document on a client device; convert the destination document into a destination document tree hierarchy; flatten 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; retrieve the set of destination document keys from the client device; retrieve a source document, wherein the source document is a second version of the destination document, from a server device; convert the source document into a source document tree hierarchy; flatten the source document tree hierarchy into a source document hash table, comprising a set of source document key-value pairs; identify a source document key-value pair, comprising a key and a value, wherein the key is not in the set of destination document keys; add the source document key-value to a changelist; identify 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 add the destination document key to the changelist; and send the changelist to the client device. 3. The computer readable storage medium of claim 1 , wherein a node in a tree hierarchy representation of a document represents a document object.