@Override
  public void changeUpdated(@NotNull String path, @NotNull AbstractVcs vcs) {
    // does not support
    if (vcs.getDiffProvider() == null) return;

    final VirtualFile root = getVcsRootFor(myProject, getFilePath(path, false));
    if (root == null) return;

    final VcsRoot vcsRoot = new VcsRoot(vcs, root);

    synchronized (myLock) {
      final Pair<VcsRoot, VcsRevisionNumber> value = myData.get(path);
      if (value == null) {
        final LazyRefreshingSelfQueue<String> queue = getQueue(vcsRoot);
        myData.put(path, Pair.create(vcsRoot, NOT_LOADED));
        queue.addRequest(path);
      }
      else if (!value.getFirst().equals(vcsRoot)) {
        switchVcs(value.getFirst(), vcsRoot, path);
      }
    }
  }
@Override
  public void changeUpdated(@NotNull String path, @NotNull AbstractVcs vcs)