protected void doDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNEntry parentEntry, SVNAdminArea adminArea, SVNDepth depth) throws SVNException { if (skipExtendedMerge()) { super.doDirectoryMerge(url1, revision1, url2, revision2, parentEntry, adminArea, depth); return; } myPrimaryURL = revision1 < revision2 ? url1 : url2; mySecondURL = revision1 < revision2 ? url2 : url1; myRevision1 = revision1; myRevision2 = revision2; try { super.doDirectoryMerge(url1, revision1, url2, revision2, parentEntry, adminArea, depth); doAdditionalMerge(); } catch (Throwable th) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.UNKNOWN, "Error while processing extended merge: ''{0}''", new Object[]{th.getMessage()}, SVNErrorMessage.TYPE_ERROR, th); SVNErrorManager.error(error, th, SVNLogType.DEFAULT); } finally { deleteReportFile(); getPendingFiles().clear(); } }