code: private int compareToTag(GitVersion that) {
          if (this.containsTag() && that.containsTag())
              return this.getTag().compareTo(that.getTag());
          else if (!this.containsTag() && !that.containsTag())
              return SAME;
          else if (this.containsTag() && !that.containsTag())
              return PREVIOUS;
          else
              return LATER;
      }
docs: Compares tag values given that git version contains no minor release
  for none of GitVersion objects
  <p/>
  When both contain a tag or not contain  it the comparison is easy but
  if only one of them contains it the release that doesn't contains it
  is the one released earlier
  <p/>
  e.g. v1.8.0-rc0 is previous to v1.8.0
  
  @param that
  @return SAME if both are equal, LATER if that is previous to this or PREVIOUS otherwise