in git-common/src/main/java/jetbrains/buildServer/buildTriggers/vcs/git/GitUtils.java [123:161]
public static String normalizePath(String path) {
if (path.length() == 0 || path.equals("/")) {
return path;
}
StringBuilder rc = new StringBuilder();
String[] pc = path.split("/");
int count = 0;
int startBacks = 0;
int[] pci = new int[pc.length];
boolean startsWithSlash = path.charAt(0) == '/';
for (int i = 0; i < pc.length; i++) {
String f = pc[i];
if (f.length() == 0 || ".".equals(f)) {
// do nothing
} else if ("..".equals(f)) {
if (count == 0) {
startBacks++;
} else {
count--;
}
} else {
pci[count++] = i;
}
}
for (int i = 0; i < startBacks; i++) {
if (rc.length() != 0 || startsWithSlash) {
rc.append('/');
}
rc.append("..");
}
for (int i = 0; i < count; i++) {
int fi = pci[i];
if (rc.length() != 0 || startsWithSlash) {
rc.append('/');
}
rc.append(pc[fi]);
}
return rc.toString();
}