equals/hashCode for commit components and full testing