aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2010-12-05 18:10:12 -0500
committerCode Review <codereview-daemon@eclipse.org>2010-12-05 18:10:12 -0500
commited7e38b98d3b959a967c32253cec87185623fa55 (patch)
tree8cfd4a3b331df18436750e99ca4cae7852e1af49
parentef11143ffee173d10fd4de37bbdfae1750c0b44c (diff)
parent864091d982a32050fa6dc3d5969b51b94f0e488c (diff)
downloadjgit-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.java21
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;
+ }
}
}