Ensure stable tag sort in PlotWalk
Because tags are more interesting here than local or remote branch heads, tags get sorted earlier in the array than heads or remotes do. Bug: 324939 Change-Id: Ifc3863461654df7f34fdecbd2abe1f4b5d2ffb8e Signed-off-by: Shawn O. Pearce <spearce@spearce.org> CC: Mathias Kinzler <mathias.kinzler@sap.com> CC: Stefan Lay <stefan.lay@sap.com>
This commit is contained in:
parent
37001ddc8d
commit
864091d982
|
@ -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 int compare(Ref o1, Ref o2) {
|
|||
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 @@ long timeof(RevObject o) {
|
|||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue