ContentRevision (@NotNull FilePath filePath, @Nullable VcsRevisionNumber revisionNumber, @NotNull Project project, @Nullable Charset charset) { GitSubmodule submodule = getRepositoryIfSubmodule(project, filePath); if (revisionNumber != null && revisionNumber != VcsRevisionNumber.NULL) { if (submodule != null) { return GitSubmoduleContentRevision.createRevision(submodule, revisionNumber); } return new GitContentRevision(filePath, (GitRevisionNumber)revisionNumber, project, charset); } else if (submodule != null) { return GitSubmoduleContentRevision.createCurrentRevision(submodule.getRepository()); } else { return new CurrentContentRevision(filePath); } }