- 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 Summary
Modifier and TypeMethodDescriptionareAllReachable
(Collection<RevObject> targets, Stream<RevObject> starters) Checks that all targets are reachable from the starters.
-
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 startersstarters
- 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.
-