private static boolean needGenerateIgnoreFile(@NotNull Project project, @NotNull VirtualFile ignoreFileRoot) {
    VcsApplicationSettings vcsApplicationSettings = VcsApplicationSettings.getInstance();
    if (vcsApplicationSettings.DISABLE_MANAGE_IGNORE_FILES) return false;

    boolean wasGeneratedPreviously = IgnoredFileRootStore.getInstance(project).containsRoot(ignoreFileRoot.getPath());
    if (wasGeneratedPreviously) {
      LOG.debug("Ignore file generated previously for root " + ignoreFileRoot.getPath());
      return false;
    }

    boolean needGenerateRegistryFlag = Registry.is("vcs.ignorefile.generation");
    if (!needGenerateRegistryFlag) {
      return false;
    }

    PropertiesComponent propertiesComponent = PropertiesComponent.getInstance(project);
    boolean askedToManageIgnores = propertiesComponent.getBoolean(ASKED_MANAGE_IGNORE_FILES_PROPERTY, false);

    return isManageIgnoreTurnOn(project) || !askedToManageIgnores;
  }
private static boolean needGenerateIgnoreFile(@NotNull Project project, @NotNull VirtualFile ignoreFileRoot)