void (boolean supportsMergeInfo) { // merge info is not supported - branch copy point is used to make first sync merge successful (without unnecessary tree conflicts) // merge info is supported and svn client < 1.8 - branch copy point is used to determine if sync or reintegrate merge should be performed // merge info is supported and svn client >= 1.8 - branch copy point is not used - svn automatically detects if reintegrate is necessary if (supportsMergeInfo && is18()) { runInEdt(() -> checkReintegrateIsAllowedAndMergeAll(null, true)); } else { runInBackground(message("progress.title.looking.for.branch.origin"), new LookForBranchOriginTask(this, true, copyPoint -> runInEdt(() -> checkReintegrateIsAllowedAndMergeAll(copyPoint, supportsMergeInfo)))); } }