public static @NotNull ContentRevision createRevision(@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);
    }
  }
public static @NotNull ContentRevision createRevision(@NotNull FilePath filePath,
                                                        @Nullable VcsRevisionNumber revisionNumber,
                                                        @NotNull Project project,
                                                        @Nullable Charset charset)