protected Object[] calculateRemainingRangeList(File targetFile, SVNEntry entry, SVNURL sourceRoot, boolean[] indirect, SVNURL url1, long revision1, SVNURL url2, long revision2, SVNMergeRange range) throws SVNException { if (skipExtendedMerge() || myCurrentRemainingRanges == null) { return super.calculateRemainingRangeList(targetFile, entry, sourceRoot, indirect, url1, revision1, url2, revision2, range); } // targetMergeInfo and implicitMergeInfo should be processed anyway. Map targetMergeInfo = null; Map implicitMergeInfo = null; if (isHonorMergeInfo()) { myRepository1.setLocation(entry.getSVNURL(), false); Map[] fullMergeInfo = getFullMergeInfo(entry, indirect, SVNMergeInfoInheritance.INHERITED, myRepository1, targetFile, Math.max(revision1, revision2), Math.min(revision1, revision2)); targetMergeInfo = fullMergeInfo[0]; implicitMergeInfo = fullMergeInfo[1]; myRepository1.setLocation(url1, false); } return new Object[]{myCurrentRemainingRanges, targetMergeInfo, implicitMergeInfo}; }
protected SVNMergeRangeList calculateRemainingRanges(File file, SVNURL sourceURL, SVNURL[] mergeSources) throws SVNException { if (skipExtendedMerge()) { return null; } SVNEntry entry = myWCAccess.getEntry(file, false); if (entry == null) { return null; } SVNMergeRangeList remainingRangeList = null; if (isHonorMergeInfo()) { MergePath mergeTarget = new MergePath(); Map targetMergeInfo; Map implicitMergeInfo; SVNRepository repository = getRepository(entry.getSVNURL()); SVNURL sourceRoot = repository.getRepositoryRoot(true); boolean[] indirect = {false}; Map[] fullMergeInfo = getFullMergeInfo(entry, indirect, SVNMergeInfoInheritance.INHERITED, repository, file, Math.max(myRevision1, myRevision2), Math.min(myRevision1, myRevision2)); targetMergeInfo = fullMergeInfo[0]; implicitMergeInfo = fullMergeInfo[1]; mergeSources = getMergeSources(sourceURL, mergeSources); SVNURL url1 = mergeSources[0]; SVNURL url2 = mergeSources[1]; calculateRemainingRanges(null, mergeTarget, sourceRoot, url1, myRevision1, url2, myRevision2, targetMergeInfo, implicitMergeInfo, false, entry, repository); remainingRangeList = mergeTarget.myRemainingRanges; } return remainingRangeList; }