in src/org/jetbrains/tfsIntegration/core/tfs/VersionControlPath.java [108:148]
public static int compareParentToChild(@NotNull String path1, boolean isDirectory1, @NotNull String path2, boolean isDrectory2) {
String[] pathComponents1 = getPathComponents(path1);
String[] pathComponents2 = getPathComponents(path2);
final int minLength = Math.min(pathComponents1.length, pathComponents2.length);
// first compare all the levels except last one
for (int i = 0; i < minLength - 1; i++) {
String s1 = pathComponents1[i];
String s2 = pathComponents2[i];
if (!s1.equals(s2)) {
return s1.compareTo(s2);
}
}
// compare last level
if (pathComponents1.length == pathComponents2.length) {
if (isDirectory1 == isDrectory2) {
return pathComponents1[pathComponents1.length - 1].compareTo(pathComponents2[pathComponents2.length - 1]);
}
else {
return isDirectory1 ? 1 : -1;
}
}
else {
if (pathComponents1.length == minLength && !isDirectory1) {
return -1;
}
else if (pathComponents2.length == minLength && !isDrectory2) {
return 1;
}
else {
if (pathComponents1[minLength - 1].equals(pathComponents2[minLength - 1])) {
return pathComponents1.length - pathComponents2.length;
}
else {
return pathComponents1[minLength - 1].compareTo(pathComponents2[minLength - 1]);
}
}
}
}