@Override
  public void register(VirtualFile vf, VcsKey vcsKey, VcsRevisionNumber number, FileAnnotation fa) {
    HistoryCacheWithRevisionKey key = new HistoryCacheWithRevisionKey(VcsContextFactory.getInstance().createFilePathOn(vf), vcsKey, number);
    if (cache.getIfPresent(key) != null) {
      return;
    }

    long absoluteLimit = System.currentTimeMillis() - VcsContentAnnotationSettings.ourAbsoluteLimit;
    TreeMap<Integer, Long> map = new TreeMap<>();
    final int lineCount = fa.getLineCount();
    for (int i = 0; i < lineCount; i++) {
      Date lineDate = fa.getLineDate(i);
      if (lineDate == null) {
        return;
      }
      if (lineDate.getTime() >= absoluteLimit) {
        map.put(i, lineDate.getTime());
      }
    }
    cache.put(key, map);
  }
@Override
  public void register(VirtualFile vf, VcsKey vcsKey, VcsRevisionNumber number, FileAnnotation fa)