void (LocalTask task, LocalTask previousActive, String name, @Nullable VcsTaskHandler.TaskInfo branchFrom) { VcsTaskHandler[] handlers = VcsTaskHandler.getAllHandlers(myProject); for (VcsTaskHandler handler : handlers) { VcsTaskHandler.TaskInfo[] info = handler.getCurrentTasks(); if (previousActive != null && previousActive.getBranches(false).isEmpty()) { addBranches(previousActive, info, false); } addBranches(task, info, true); if (info.length == 0 && branchFrom != null) { addBranches(task, new VcsTaskHandler.TaskInfo[] { branchFrom }, true); } addBranches(task, new VcsTaskHandler.TaskInfo[] { handler.startNewTask(name) }, false); } }