/**
  * Handles a low-level Git execution exception. Checks that Git executable is valid. If it is not,
  * then shows proper notification with an option to fix the path to Git. If it's valid, then we
  * don't know what could happen and just display the general error notification.
  */
 public static void checkGitExecutableAndShowNotification(final Project project, VcsException e) {
   if (GitVcs.getInstance(project).getExecutableValidator().checkExecutableAndNotifyIfNeeded()) {
     GitVcs.IMPORTANT_ERROR_NOTIFICATION
         .createNotification(
             GitBundle.getString("general.error"),
             e.getLocalizedMessage(),
             NotificationType.ERROR,
             null)
         .notify(project);
   }
 }
 @Override
 protected void notifyUnresolvedRemain() {
   GitVcs.IMPORTANT_ERROR_NOTIFICATION
       .createNotification(
           "Conflicts were not resolved during unstash",
           "Unstash is not complete, you have unresolved merges in your working tree<br/>"
               + "<a href='resolve'>Resolve</a> conflicts.",
           NotificationType.WARNING,
           new NotificationListener() {
             @Override
             public void hyperlinkUpdate(
                 @NotNull Notification notification, @NotNull HyperlinkEvent event) {
               if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                 if (event.getDescription().equals("resolve")) {
                   new UnstashConflictResolver(myProject, myRoot, myStashInfo).mergeNoProceed();
                 }
               }
             }
           })
       .notify(myProject);
 }