public FileRevisionHistory getFileHistory(ScanMode scanMode, final ProgressIndicator progressIndicator)
throws SVNException {
boolean retrievedWithErrors = false;
final CollectedRevisions revisions = new CollectedRevisions();
Info info = svn.getInfo(file);
if (info == null) {
throw new SVNException(SVNErrorMessage.create(SVNErrorCode.UNKNOWN, "Error retrieving SVN information for file"));
}
SVNRevision committedRevision = info.getRevision();
if (committedRevision == null) {
throw new SVNException(SVNErrorMessage.create(SVNErrorCode.UNKNOWN, "Error determining current file revision"));
}
boolean isDirectory = info.getKind() != NodeKind.FILE;
final long currentRevision = committedRevision.getNumber();
String repoRoot = info.getRepositoryRootURL().toString();
final String relPath = info.getURL().toString().substring(repoRoot.length());
SVNRepository repo = svn.getSvnKitManager().createRepository(repoRoot);
boolean mergeInfoAvailable = repo.hasCapability(SVNCapability.MERGE_INFO);
showProgressInfo(progressIndicator, "Getting latest repository revision");