sakaiproject/sparsemapcontent — pull request #53 by thecarlhall (2012-04-10 19:21:31+00:00)
Title: KERN-2753 Add diffing to move so that old nodes and properties are properly removed when they don't exist in the new content and the destination history should be kept

When we don't need the destination's history, we can delete the destination before moving. When moving content and keeping the destination history, we have to be careful how things are moved around.

Sparse accumulates properties as data is updated. When we move something and keep the destination history, we have to manage the removal of the nodes and properties in the `source` tree that aren't in the `destination` tree.

This patch handles deleting properties in `moveContent`. Since `moveContent` only handles a single node, `move` handles deleting the nodes that don't exist in the tree.