Content-aware diff