public static void registerListener(@NotNull Project project, @NotNull Disposable disposable) {
    project.getMessageBus().connect(disposable).subscribe(GitRepository.GIT_REPO_CHANGE, new GitRepositoryChangeListener() {
      @Override
      public void repositoryChanged(@NotNull GitRepository repository) {
        final VcsAnnotationRefresher refresher = BackgroundTaskUtil.syncPublisher(project, VcsAnnotationRefresher.LOCAL_CHANGES_CHANGED);
        refresher.dirtyUnder(repository.getRoot());
      }
    });

    VcsLogApplicationSettings logSettings = ApplicationManager.getApplication().getService(VcsLogApplicationSettings.class);
    VcsLogUiProperties.PropertiesChangeListener logSettingsListener = new VcsLogUiProperties.PropertiesChangeListener() {
      @Override
      public <T> void onPropertyChanged(VcsLogUiProperties.@NotNull VcsLogUiProperty<T> property) {
        if (property.equals(CommonUiProperties.PREFER_COMMIT_DATE)) {
          GitToggleAnnotationOptionsActionProvider.resetAllAnnotations(project, false);
        }
      }
    };
    logSettings.addChangeListener(logSettingsListener);
    Disposer.register(disposable, () -> logSettings.removeChangeListener(logSettingsListener));
  }
public static void registerListener(@NotNull Project project, @NotNull Disposable disposable)