javagit/src/main/java/edu/nyu/cs/javagit/api/GitVersion.java
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;
    }
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;
    }
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