Class IterativeConnectivityChecker
- java.lang.Object
-
- org.eclipse.jgit.internal.transport.connectivity.IterativeConnectivityChecker
-
- All Implemented Interfaces:
ConnectivityChecker
public class IterativeConnectivityChecker extends java.lang.Object implements ConnectivityChecker
Implementation of connectivity checker which tries to do check with smaller set of references first and if it fails will fall back to check against all advertised references. This is useful for big repos with enormous number of references.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.jgit.transport.ConnectivityChecker
ConnectivityChecker.ConnectivityCheckInfo
-
-
Field Summary
Fields Modifier and Type Field Description private ConnectivityChecker
delegate
private java.util.Set<ObjectId>
forcedHaves
private static int
MAXIMUM_PARENTS_TO_CHECK
-
Constructor Summary
Constructors Constructor Description IterativeConnectivityChecker(ConnectivityChecker delegate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkConnectivity(ConnectivityChecker.ConnectivityCheckInfo connectivityCheckInfo, java.util.Set<ObjectId> advertisedHaves, ProgressMonitor pm)
Checks connectivity of the commit graph after pack uploading.private static java.util.Set<ObjectId>
extractAdvertisedParentCommits(java.util.Set<ObjectId> newRefs, java.util.Set<ObjectId> advertisedHaves, RevWalk rw)
private static java.util.stream.Stream<ObjectId>
getAllObjectIds(java.util.List<ReceiveCommand> commands)
private static java.util.List<RevCommit>
parseParents(RevCommit[] parents, RevWalk rw)
void
setForcedHaves(java.util.Set<ObjectId> forcedHaves)
Sets additional haves that client can depend on (e.g.
-
-
-
Field Detail
-
MAXIMUM_PARENTS_TO_CHECK
private static final int MAXIMUM_PARENTS_TO_CHECK
- See Also:
- Constant Field Values
-
delegate
private final ConnectivityChecker delegate
-
forcedHaves
private java.util.Set<ObjectId> forcedHaves
-
-
Constructor Detail
-
IterativeConnectivityChecker
public IterativeConnectivityChecker(ConnectivityChecker delegate)
- Parameters:
delegate
- Delegate checker which will be called for actual checks.
-
-
Method Detail
-
checkConnectivity
public void checkConnectivity(ConnectivityChecker.ConnectivityCheckInfo connectivityCheckInfo, java.util.Set<ObjectId> advertisedHaves, ProgressMonitor pm) throws MissingObjectException, java.io.IOException
Description copied from interface:ConnectivityChecker
Checks connectivity of the commit graph after pack uploading.- Specified by:
checkConnectivity
in interfaceConnectivityChecker
- Parameters:
connectivityCheckInfo
- Input for the connectivity check.advertisedHaves
- Set of references known for client.pm
- Monitor to publish progress to.- Throws:
java.io.IOException
- an error occurred during connectivity checking.MissingObjectException
-
getAllObjectIds
private static java.util.stream.Stream<ObjectId> getAllObjectIds(java.util.List<ReceiveCommand> commands)
-
setForcedHaves
public void setForcedHaves(java.util.Set<ObjectId> forcedHaves)
Sets additional haves that client can depend on (e.g. gerrit changes).- Parameters:
forcedHaves
- Haves server expects client to depend on.
-
extractAdvertisedParentCommits
private static java.util.Set<ObjectId> extractAdvertisedParentCommits(java.util.Set<ObjectId> newRefs, java.util.Set<ObjectId> advertisedHaves, RevWalk rw) throws MissingObjectException, java.io.IOException
- Throws:
MissingObjectException
java.io.IOException
-
-