void (@NotNull Project project, @NotNull GitRepository repository, @NotNull GitRevisionNumber currentRev, @NotNull Label beforeLabel, @NlsActions.ActionText @NotNull String actionName) { try { UpdatedFiles files = UpdatedFiles.create(); MergeChangeCollector collector = new MergeChangeCollector(project, repository, currentRev); collector.collect(files); ModalityUiUtil.invokeLaterIfNeeded(ModalityState.defaultModalityState(), () -> { ProjectLevelVcsManagerEx manager = (ProjectLevelVcsManagerEx)ProjectLevelVcsManager.getInstance(project); UpdateInfoTree tree = manager.showUpdateProjectInfo(files, actionName, ActionInfo.UPDATE, false); if (tree != null) { tree.setBefore(beforeLabel); tree.setAfter(LocalHistory.getInstance().putSystemLabel(project, GitBundle.message("merge.action.after.update.label"))); ViewUpdateInfoNotification.focusUpdateInfoTree(project, tree); } }); } catch (VcsException e) { GitVcs.getInstance(project).showErrors(singletonList(e), actionName); } }