Merge "Use 5 MiB for RevWalk default limit"
This commit is contained in:
commit
2b0c5c7207
|
@ -47,7 +47,6 @@
|
|||
package org.eclipse.jgit.lib;
|
||||
|
||||
import static java.util.zip.Deflater.DEFAULT_COMPRESSION;
|
||||
import static org.eclipse.jgit.lib.ObjectLoader.STREAM_THRESHOLD;
|
||||
|
||||
import org.eclipse.jgit.lib.Config.SectionParser;
|
||||
|
||||
|
@ -68,21 +67,12 @@ public CoreConfig parse(final Config cfg) {
|
|||
|
||||
private final boolean logAllRefUpdates;
|
||||
|
||||
private final int streamFileThreshold;
|
||||
|
||||
private final boolean autoCRLF;
|
||||
|
||||
private CoreConfig(final Config rc) {
|
||||
compression = rc.getInt("core", "compression", DEFAULT_COMPRESSION);
|
||||
packIndexVersion = rc.getInt("pack", "indexversion", 2);
|
||||
logAllRefUpdates = rc.getBoolean("core", "logallrefupdates", true);
|
||||
|
||||
long maxMem = Runtime.getRuntime().maxMemory();
|
||||
long sft = rc.getLong("core", null, "streamfilethreshold", STREAM_THRESHOLD);
|
||||
sft = Math.min(sft, maxMem / 4); // don't use more than 1/4 of the heap
|
||||
sft = Math.min(sft, Integer.MAX_VALUE); // cannot exceed array length
|
||||
streamFileThreshold = (int) sft;
|
||||
|
||||
autoCRLF = rc.getBoolean("core", "autocrlf", false);
|
||||
}
|
||||
|
||||
|
@ -108,11 +98,6 @@ public boolean isLogAllRefUpdates() {
|
|||
return logAllRefUpdates;
|
||||
}
|
||||
|
||||
/** @return the size threshold beyond which objects must be streamed. */
|
||||
public int getStreamFileThreshold() {
|
||||
return streamFileThreshold;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return whether automatic CRLF conversion has been configured
|
||||
*/
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
import org.eclipse.jgit.lib.AnyObjectId;
|
||||
import org.eclipse.jgit.lib.AsyncObjectLoaderQueue;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
import org.eclipse.jgit.lib.CoreConfig;
|
||||
import org.eclipse.jgit.lib.MutableObjectId;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.ObjectIdSubclassMap;
|
||||
|
@ -96,6 +95,8 @@
|
|||
* {@link #next()} does not.
|
||||
*/
|
||||
public class RevWalk implements Iterable<RevCommit> {
|
||||
private static final int MB = 1 << 20;
|
||||
|
||||
/**
|
||||
* Set on objects whose important header data has been loaded.
|
||||
* <p>
|
||||
|
@ -171,9 +172,6 @@ public class RevWalk implements Iterable<RevCommit> {
|
|||
|
||||
private final ObjectIdSubclassMap<RevObject> objects;
|
||||
|
||||
/** Largest commit or annotated tag we are willing to touch. */
|
||||
private final int bigFileThreshold;
|
||||
|
||||
private int freeFlags = APP_FLAGS;
|
||||
|
||||
private int delayFreeFlags;
|
||||
|
@ -230,13 +228,6 @@ private RevWalk(final Repository repo, final ObjectReader or) {
|
|||
filter = RevFilter.ALL;
|
||||
treeFilter = TreeFilter.ALL;
|
||||
retainBody = true;
|
||||
|
||||
if (repo != null) {
|
||||
CoreConfig cfg = repo.getConfig().get(CoreConfig.KEY);
|
||||
bigFileThreshold = cfg.getStreamFileThreshold();
|
||||
} else {
|
||||
bigFileThreshold = 15 * 1024 * 1024;
|
||||
}
|
||||
}
|
||||
|
||||
/** @return the reader this walker is using to load objects. */
|
||||
|
@ -867,7 +858,7 @@ byte[] getCachedBytes(RevObject obj) throws LargeObjectException,
|
|||
byte[] getCachedBytes(RevObject obj, ObjectLoader ldr)
|
||||
throws LargeObjectException, MissingObjectException, IOException {
|
||||
try {
|
||||
return ldr.getCachedBytes(bigFileThreshold);
|
||||
return ldr.getCachedBytes(5 * MB);
|
||||
} catch (LargeObjectException tooBig) {
|
||||
tooBig.setObjectId(obj);
|
||||
throw tooBig;
|
||||
|
|
Loading…
Reference in New Issue