File (@NotNull HgVersion version, @NotNull File parentCacheFile) { //before 2.5 only branchheads exist; branchheads-served after mercurial 2.5; branch2-served after 2.9; // when project is recently cloned there are only base file if (version.hasBranch2()) { File file = new File(parentCacheFile, "branch2-served"); return file.exists() ? file : new File(parentCacheFile, "branch2-base"); } if (version.hasBranchHeadsBaseServed()) { File file = new File(parentCacheFile, "branchheads-served"); return file.exists() ? file : new File(parentCacheFile, "branchheads-base"); } return new File(parentCacheFile, "branchheads"); }