@Override
  public @Nullable String getBaseVersionContent(@NotNull FilePath filePath, @NotNull String beforeVersionId) throws VcsException {
    if (StringUtil.isEmptyOrSpaces(beforeVersionId) || filePath.getVirtualFile() == null) return null;
    if (!GitUtil.isHashString(beforeVersionId, false)) return null;

    // apply if base revision id matches revision
    GitRepository repository = GitRepositoryManager.getInstance(myProject).getRepositoryForFile(filePath);
    if (repository == null) return null;

    GitObjectType objectType = Git.getInstance().getObjectTypeEnum(repository, beforeVersionId);
    return objectType == null ? null : switch (objectType) {
      case COMMIT -> GitContentRevision.createRevision(filePath, new GitRevisionNumber(beforeVersionId), myProject).getContent();
      case BLOB -> ContentRevisionCache.getAsString(GitIndexUtil.read(repository, beforeVersionId), filePath, null);
      case TREE -> null;
    };
  }
@Override
  public @Nullable String getBaseVersionContent(@NotNull FilePath filePath, @NotNull String beforeVersionId)