private SVNURL[] getMergeSources(SVNURL sourceURL, SVNURL[] mergeSources) throws SVNException { if (mergeSources == null) { mergeSources = new SVNURL[2]; } if (mergeSources[0] != null && mergeSources[1] != null) { return mergeSources; } SVNURL sourceCopiedFrom = getExtendedMergeCallback().transformLocation(sourceURL, Math.max(myRevision1, myRevision2), Math.min(myRevision1, myRevision2)); if (sourceCopiedFrom != null) { mergeSources[0] = sourceCopiedFrom; mergeSources[1] = sourceURL; } else { mergeSources[0] = sourceURL; String relativePath = SVNPathUtil.getRelativePath(myPrimaryURL.getPath(), sourceURL.getPath()); mergeSources[1] = mySecondURL.appendPath(relativePath, false); } return mergeSources; }
protected SVNRemoteDiffEditor getMergeReportEditor(long defaultStart, long revision, SVNAdminArea adminArea, SVNDepth depth, AbstractDiffCallback mergeCallback, SVNRemoteDiffEditor editor) throws SVNException { if (skipExtendedMerge()) { return super.getMergeReportEditor(defaultStart, revision, adminArea, depth, mergeCallback, editor); } if (editor == null) { editor = new SVNExtendedMergeEditor(this, getExtendedMergeCallback(), adminArea, adminArea.getRoot(), mergeCallback, myPrimaryURL, myRepository2, defaultStart, revision, myIsDryRun, depth, this, this); } else { editor.reset(defaultStart, revision); } File tmp = mergeCallback.createTempDirectory(); setTempDirectory(tmp); return editor; }