Interface ObjectReachabilityChecker

All Known Implementing Classes:
BitmappedObjectReachabilityChecker, PedestrianObjectReachabilityChecker

public interface ObjectReachabilityChecker
Checks if all objects are reachable from certain starting points. This is an expensive check that browses commits, trees, blobs and tags. For reachability just between commits see ReachabilityChecker implementations.
Since:
5.8
  • Method Details

    • areAllReachable

      Optional<RevObject> areAllReachable(Collection<RevObject> targets, Stream<RevObject> starters) throws IOException
      Checks that all targets are reachable from the starters.
      Parameters:
      targets - objects to check for reachability from the starters
      starters - objects known to be reachable to the caller
      Returns:
      Optional a single unreachable target if there are any (there could be more). Empty optional means all targets are reachable.
      Throws:
      IOException - Cannot access underlying storage
      Implementation Requirements:
      Missing or invalid objects are reported as illegal state. Caller should have found them while translating ObjectIds into RevObjects. They can only happen here if the caller is mixing revwalks.