@NotNull
  private SvnRemoteFileAnnotation annotateNonExisting(@NotNull Pair<SvnChangeList, FilePath> pair,
                                                      @NotNull SvnRevisionNumber revisionNumber,
                                                      @NotNull Info info,
                                                      @NotNull Charset charset,
                                                      @NotNull VirtualFile current) throws VcsException, IOException {
    final File wasFile = pair.getSecond().getIOFile();
    final File root = getCommonAncestor(wasFile, info.getFile());

    if (root == null) {
      throw new VcsException(
        message("error.can.not.find.relative.path.for.path.at.revision", wasFile.getPath(), revisionNumber.asString()));
    }

    final String relativePath = FileUtil.getRelativePath(root.getPath(), wasFile.getPath(), File.separatorChar);
    if (relativePath == null) {
      throw new VcsException(
        message("error.can.not.find.relative.path.for.path.at.revision", wasFile.getPath(), revisionNumber.asString()));
    }

    Info wcRootInfo = myVcs.getInfo(root);
    if (wcRootInfo == null || wcRootInfo.getUrl() == null) {
      throw new VcsException(
        message("error.can.not.find.relative.path.for.path.at.revision", wasFile.getPath(), revisionNumber.asString()));
    }
    Url wasUrl = wcRootInfo.getUrl();
    final String[] strings = relativePath.replace('\\', '/').split("/");
    for (String string : strings) {
      wasUrl = append(wasUrl, string, true);
    }

    final Revision revision = revisionNumber.getRevision();
    byte[] data = getFileContents(myVcs, Target.on(wasUrl), revision, revision);
    final String contents = getTextByBinaryPresentation(data, charset).toString();
    final SvnRemoteFileAnnotation result = new SvnRemoteFileAnnotation(myVcs, contents, revisionNumber, current);
    final AnnotationConsumer annotateHandler = createAnnotationHandler(ProgressManager.getInstance().getProgressIndicator(), result);

    boolean calculateMergeinfo = myVcs.getSvnConfiguration().isShowMergeSourcesInAnnotate() && checkRepositoryVersion15(myVcs, wasUrl);
    AnnotateClient client = myVcs.getFactory().createAnnotateClient();
    client
      .annotate(Target.on(wasUrl, revision), Revision.of(1), revision, calculateMergeinfo, getLogClientOptions(myVcs),
                annotateHandler);
    return result;
  }
@NotNull
  private SvnRemoteFileAnnotation annotateNonExisting(@NotNull Pair<SvnChangeList, FilePath> pair,
                                                      @NotNull SvnRevisionNumber revisionNumber,
                                                      @NotNull Info info,
                                                      @NotNull Charset charset,
                                                      @NotNull VirtualFile current)