jgit/org.eclipse.jgit
Matthias Sohn cd3fc7a299 Speedup GC listing objects referenced from reflogs
GC needs to get a ReflogReader for all existing refs to list all objects
referenced from reflogs. The existing Repository#getReflogReader method
accepts the ref name and then resolves the Ref to create a ReflogReader.
GC calling that for a huge number of Refs one by one is very slow. GC
first gets all Refs in bulk and then calls getReflogReader for each of
them.

Fix this by adding another getReflogReader method to Repository which
accepts a Ref directly.

This speeds up running JGit gc on a mirror clone of the Gerrit
repository from 15:36 min to 1:08 min. The repository used in this test
had 45k refs, 275k commits and 1.2m git objects.

Change-Id: I474897fdc6652923e35d461c065a29f54d9949f4
2023-01-23 17:19:14 +01:00
..
.settings Speedup GC listing objects referenced from reflogs 2023-01-23 17:19:14 +01:00
META-INF Add missing package import javax.management to org.eclipse.jgit 2022-06-17 13:49:59 +02:00
findBugs [spotbugs] Silence NP_BOOLEAN_RETURN_NULL in IgnoreNode#checkIgnored 2020-12-22 10:52:59 +01:00
resources/org/eclipse/jgit AmazonS3: Add support for AWS API signature version 4 2022-06-13 09:44:23 +02:00
src/org/eclipse/jgit Speedup GC listing objects referenced from reflogs 2023-01-23 17:19:14 +01:00
.classpath
.fbprefs
.gitignore
.project
BUILD Fix stamping to produce stable file timestamps 2020-12-14 15:45:29 +01:00
about.html
build.properties
plugin.properties Fix bundle localization of Apache SSH bundle 2019-06-21 17:54:06 +02:00
pom.xml Prepare 5.13.2-SNAPSHOT builds 2022-06-14 00:41:18 +02:00