diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2010-12-05 18:10:12 -0500 |
---|---|---|
committer | Code Review <codereview-daemon@eclipse.org> | 2010-12-05 18:10:12 -0500 |
commit | ed7e38b98d3b959a967c32253cec87185623fa55 (patch) | |
tree | 8cfd4a3b331df18436750e99ca4cae7852e1af49 | |
parent | ef11143ffee173d10fd4de37bbdfae1750c0b44c (diff) | |
parent | 864091d982a32050fa6dc3d5969b51b94f0e488c (diff) | |
download | jgit-ed7e38b98d3b959a967c32253cec87185623fa55.tar.gz jgit-ed7e38b98d3b959a967c32253cec87185623fa55.zip |
Merge "Ensure stable tag sort in PlotWalk"
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java index c69e66cb8c..b4c90c54d3 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java @@ -44,6 +44,10 @@ package org.eclipse.jgit.revplot; +import static org.eclipse.jgit.lib.Constants.R_HEADS; +import static org.eclipse.jgit.lib.Constants.R_REMOTES; +import static org.eclipse.jgit.lib.Constants.R_TAGS; + import java.io.IOException; import java.util.Arrays; import java.util.Collection; @@ -131,11 +135,14 @@ public class PlotWalk extends RevWalk { return -1; if (t1 < t2) return 1; - return 0; } catch (IOException e) { // ignore - return 0; } + + int cmp = kind(o1) - kind(o2); + if (cmp == 0) + cmp = o1.getName().compareTo(o2.getName()); + return cmp; } long timeof(RevObject o) { @@ -148,5 +155,15 @@ public class PlotWalk extends RevWalk { } return 0; } + + int kind(Ref r) { + if (r.getName().startsWith(R_TAGS)) + return 0; + if (r.getName().startsWith(R_HEADS)) + return 1; + if (r.getName().startsWith(R_REMOTES)) + return 2; + return 3; + } } } |