@Nullable
  private static FakeRevision readContentRevision(@NotNull Element changeNode, @NotNull Project project, @NotNull RevisionSide side) {
    String plainPath = changeNode.getAttributeValue(side.getPathKey());
    String escapedPath = changeNode.getAttributeValue(side.getEscapedPathKey());
    String path = escapedPath != null ? XmlStringUtil.unescapeIllegalXmlChars(escapedPath) : plainPath;
    String isDirValue = changeNode.getAttributeValue(side.getIsDirKey());
    if (StringUtil.isEmpty(path)) return null;

    boolean isCurrentRevision = side == RevisionSide.AFTER;
    boolean isDirectory = isDirValue != null && Boolean.parseBoolean(isDirValue);
    FilePath filePath = VcsUtil.getFilePath(path, isDirectory);
    return new FakeRevision(project, filePath, isCurrentRevision);
  }
@Nullable
  private static FakeRevision readContentRevision(@NotNull Element changeNode, @NotNull Project project, @NotNull RevisionSide side)