FakeRevision (@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); }