protected Map getReposMergeInfo(SVNRepository repository, String path, long revision,
SVNMergeInfoInheritance inheritance, boolean squelchIncapable) throws SVNException {
Map reposMergeInfo = null;
try {
reposMergeInfo = repository.getMergeInfo(new String[] { path }, revision, inheritance, false);
} catch (SVNException svne) {
if (!squelchIncapable || svne.getErrorMessage().getErrorCode() != SVNErrorCode.UNSUPPORTED_FEATURE) {
throw svne;
}
}
String rootRelativePath = getPathRelativeToRoot(null, repository.getLocation(), repository.getRepositoryRoot(false), null, repository);
Map targetMergeInfo = null;
if (reposMergeInfo != null) {
SVNMergeInfo mergeInfo = (SVNMergeInfo) reposMergeInfo.get(rootRelativePath);
if (mergeInfo != null) {
targetMergeInfo = mergeInfo.getMergeSourcesToMergeLists();
}
}
return targetMergeInfo;
}