@Override
  public void actionPerformed(@NotNull AnActionEvent e) {
    VcsLogUsageTriggerCollector.triggerUsage(e, this);

    String commitMessage = e.getData(VcsDataKeys.PRESET_COMMIT_MESSAGE);

    if (e.getData(ChangesBrowserBase.DATA_KEY) != null) {
      Change[] changes = e.getData(VcsDataKeys.CHANGES);
      if (changes == null) return;
      CreatePatchFromChangesAction.createPatch(e.getProject(), commitMessage, Arrays.asList(changes), mySilentClipboard);
      return;
    }

    VcsLogCommitSelection selection = e.getData(VcsLogDataKeys.VCS_LOG_COMMIT_SELECTION);
    if (selection == null) return;

    selection.requestFullDetails(details -> {
      List<Change> changes = VcsLogUtil.collectChanges(details);
      CreatePatchFromChangesAction.createPatch(e.getProject(), commitMessage, changes, mySilentClipboard);
    });
  }
@Override
  public void actionPerformed(@NotNull AnActionEvent e)