int getUnreferencedLooseObjectsCount()

in src/main/java/com/ericsson/gerrit/plugins/gcconductor/EvaluationTask.java [150:167]


  int getUnreferencedLooseObjectsCount(FileRepository repo) throws IOException {
    File objects = repo.getObjectsDirectory();
    String[] fanout = objects.list();
    if (fanout == null || fanout.length == 0) {
      return 0;
    }
    Set<ObjectId> unreferencedCandidates = getUnreferencedCandidates(objects, fanout);
    if (unreferencedCandidates.isEmpty()) {
      return 0;
    }
    try (ObjectWalk walk = new ObjectWalk(repo)) {
      for (Ref ref : getAllRefs(repo)) {
        walk.markStart(walk.parseAny(ref.getObjectId()));
      }
      removeReferenced(unreferencedCandidates, walk);
    }
    return unreferencedCandidates.size();
  }