|
|
@@ -53,12 +53,13 @@ import java.util.Set; |
|
|
|
|
|
|
|
import org.eclipse.jgit.JGitText; |
|
|
|
import org.eclipse.jgit.lib.AnyObjectId; |
|
|
|
import org.eclipse.jgit.lib.Commit; |
|
|
|
import org.eclipse.jgit.lib.PersonIdent; |
|
|
|
import org.eclipse.jgit.lib.Ref; |
|
|
|
import org.eclipse.jgit.lib.Repository; |
|
|
|
import org.eclipse.jgit.lib.Tag; |
|
|
|
import org.eclipse.jgit.revwalk.RevCommit; |
|
|
|
import org.eclipse.jgit.revwalk.RevObject; |
|
|
|
import org.eclipse.jgit.revwalk.RevSort; |
|
|
|
import org.eclipse.jgit.revwalk.RevTag; |
|
|
|
import org.eclipse.jgit.revwalk.RevWalk; |
|
|
|
|
|
|
|
/** Specialized RevWalk for visualization of a commit graph. */ |
|
|
@@ -115,8 +116,8 @@ public class PlotWalk extends RevWalk { |
|
|
|
class PlotRefComparator implements Comparator<Ref> { |
|
|
|
public int compare(Ref o1, Ref o2) { |
|
|
|
try { |
|
|
|
Object obj1 = getRepository().mapObject(o1.getObjectId(), o1.getName()); |
|
|
|
Object obj2 = getRepository().mapObject(o2.getObjectId(), o2.getName()); |
|
|
|
RevObject obj1 = parseAny(o1.getObjectId()); |
|
|
|
RevObject obj2 = parseAny(o2.getObjectId()); |
|
|
|
long t1 = timeof(obj1); |
|
|
|
long t2 = timeof(obj2); |
|
|
|
if (t1 > t2) |
|
|
@@ -129,11 +130,15 @@ public class PlotWalk extends RevWalk { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
long timeof(Object o) { |
|
|
|
if (o instanceof Commit) |
|
|
|
return ((Commit)o).getCommitter().getWhen().getTime(); |
|
|
|
if (o instanceof Tag) |
|
|
|
return ((Tag)o).getTagger().getWhen().getTime(); |
|
|
|
|
|
|
|
long timeof(RevObject o) { |
|
|
|
if (o instanceof RevCommit) |
|
|
|
return ((RevCommit) o).getCommitTime(); |
|
|
|
if (o instanceof RevTag) { |
|
|
|
RevTag tag = (RevTag) o; |
|
|
|
PersonIdent who = tag.getTaggerIdent(); |
|
|
|
return who != null ? who.getWhen().getTime() : 0; |
|
|
|
} |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |