List<VirtualFile> (@NotNull VirtualFile vcsRoot) { try { GitLineHandler handler = new GitLineHandler(null, vcsRoot, GitCommand.SUBMODULE_HELPER); handler.addParameters("list"); GitCommandResult result = Git.getInstance().runCommand(handler); if (!result.success()) return Collections.emptyList(); List<VirtualFile> submodules = new ArrayList<>(); for (String line : result.getOutput()) { StringScanner scanner = new StringScanner(line); scanner.tabToken(); // mode, sha, stage String path = scanner.line(); // relative path ContainerUtil.addIfNotNull(submodules, VcsUtil.getFilePath(vcsRoot, path).getVirtualFile()); } return submodules; } catch (ProcessCanceledException e) { throw e; } catch (Exception e) { Logger.getInstance(GitRootChecker.class).warn(e); return Collections.emptyList(); } }