public CommitTreeNode copy(CommitTree copyTree, CommitTreeNode copyParent) { CommitTreeNode copy = new CommitTreeNode(copyTree, copyParent, myName); copy.myId = myId; copy.myContentChecksum = myContentChecksum; copy.myContent = myContent; if (myProperties != null) { copy.myProperties = new HashMap<String, byte[]>(myProperties); } if (myChildren != null) { copy.myChildren = new HashMap<String, CommitTreeNode>(); for (CommitTreeNode child : myChildren.values()) { copy.myChildren.put(child.getName(), child.copy(copyTree, copy)); } } return copy; }