@Override
  public int hashCode() {
    // if short revision number is not empty, then short changeset is enough, a.e. annotations
    return Objects.hash(revision, revision.isEmpty() ? changeset : getShortHash(changeset));
  }
@Override
  public int hashCode()