protected void addMergeSource(String mergeSource, SVNURL[] mergeSources, File target, SVNMergeRangeList remainingRanges, boolean adjustMergeInfo, SVNCopySource targetCopySource) throws SVNException { if (getPendingFiles().contains(target)) { SVNDebugLog.getDefaultLog().logFine(SVNLogType.WC, "ext merge: skip new additional target " + target.getAbsolutePath()); return; } getPendingFiles().add(target); SVNURL sourceURL = myPrimaryURL.appendPath(mergeSource, false); mergeSources = getMergeSources(sourceURL, mergeSources); SVNURL url1 = mergeSources[0]; SVNURL url2 = mergeSources[1]; BufferedWriter writer = createWriter(); SVNMergeTask mergeTask = new SVNMergeTask(url1, url2, target, remainingRanges, adjustMergeInfo, targetCopySource); SVNDebugLog.getDefaultLog().logFine(SVNLogType.WC, "ext merge: " + mergeTask.toString()); try { mergeTask.writeTo(writer); } catch (IOException e) { SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.IO_ERROR, e), SVNLogType.DEFAULT); } finally { SVNFileUtil.closeFile(writer); } }