@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof TaskRepository)) return false;

    TaskRepository that = (TaskRepository) o;
    if (!Comparing.equal(myType, that.myType)) return false;
    if (isShared() != that.isShared()) return false;
    if (getUrl() != null ? !getUrl().equals(that.getUrl()) : that.getUrl() != null) return false;
    if (getCommitMessageFormat() != null
        ? !getCommitMessageFormat().equals(that.getCommitMessageFormat())
        : that.getCommitMessageFormat() != null) {
      return false;
    }
    return isShouldFormatCommitMessage() == that.isShouldFormatCommitMessage();
  }
 protected TaskRepository(TaskRepository other) {
   myType = other.myType;
   myShared = other.isShared();
   myUrl = other.getUrl();
   setShouldFormatCommitMessage(other.myShouldFormatCommitMessage);
   setCommitMessageFormat(other.myCommitMessageFormat);
 }