efficient diff algorithm for trees and Levenshtein distance I've recently read this summary of the issues involved with doing diff between trees and it got me interested in learning what is the state of the art for this problem. 

Also, suppose that between your allowed edit operations are the traditional add/delete node, edit content you add the extended operations of copy/move subtree, does this makes the problem (of finding an optimal diff) easier or harder?
The following paper describes a slightly more efficient algorithm than Zhang-Shasha for computing tree edit distance, along with a proof that their algorithm is optimal (within a certain broad class of algorithms):


Erik Demaine, Shay Mozes, Benjamin Rossman, and Oren Weimann.  An Optimal Decomposition Algorithm for Tree Edit Distance.  ACM Transactions on Algorithms, 6(1), 2009.