@@ -0,0 +1,1099 @@
+package committools.data;%0A%0Aimport org.eclipse.jgit.lib.PersonIdent;%0A%0Aimport com.google.common.base.Objects;%0A%0A/**%0A * A struct object containing the git commiter identity. Such objects are equal%0A * when at least the name or the email are equal, allowing better deduplication.%0A * %0A * @author Miltos Allamanis %3Cm.allamanis@ed.ac.uk%3E%0A * %0A */%0Apublic final class GitCommiterIdentity %7B%0A%0A%09public final String name;%0A%0A%09public final String emailUsername;%0A%0A%09public GitCommiterIdentity(final PersonIdent jgitIdenity) %7B%0A%09%09name = jgitIdenity.getName();%0A%09%09emailUsername = jgitIdenity.getEmailAddress().split(%22@%22)%5B0%5D;%0A%09%7D%0A%0A%09@Override%0A%09public boolean equals(final Object obj) %7B%0A%09%09if (this == obj) %7B%0A%09%09%09return true;%0A%09%09%7D%0A%09%09if (obj == null) %7B%0A%09%09%09return false;%0A%09%09%7D%0A%09%09if (getClass() != obj.getClass()) %7B%0A%09%09%09return false;%0A%09%09%7D%0A%09%09final GitCommiterIdentity other = (GitCommiterIdentity) obj;%0A%09%09return Objects.equal(name, other.name)%0A%09%09%09%09%7C%7C Objects.equal(emailUsername, other.emailUsername);%0A%09%7D%0A%0A%09@Override%0A%09public int hashCode() %7B%0A%09%09return 0;%0A%09%7D%0A%0A%09@Override%0A%09public String toString() %7B%0A%09%09return name + %22:%22 + emailUsername;%0A%09%7D%0A%0A%7D

Use git blame to find faction mememberships