Browse Source

Configure WindowCache settings to use in JGit CLI

Set the same defaults as in EGit.
Use mmap to map git packfiles into memory.

Change-Id: I7997b9123448a762192d7eeb55e01432549fba98
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-5.0
Matthias Sohn 7 years ago
parent
commit
e6375445d1
  1. 10
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Main.java

10
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Main.java

@ -71,6 +71,7 @@ import org.eclipse.jgit.lib.RepositoryBuilder;
import org.eclipse.jgit.pgm.internal.CLIText; import org.eclipse.jgit.pgm.internal.CLIText;
import org.eclipse.jgit.pgm.opt.CmdLineParser; import org.eclipse.jgit.pgm.opt.CmdLineParser;
import org.eclipse.jgit.pgm.opt.SubcommandHandler; import org.eclipse.jgit.pgm.opt.SubcommandHandler;
import org.eclipse.jgit.storage.file.WindowCacheConfig;
import org.eclipse.jgit.transport.HttpTransport; import org.eclipse.jgit.transport.HttpTransport;
import org.eclipse.jgit.transport.http.apache.HttpClientConnectionFactory; import org.eclipse.jgit.transport.http.apache.HttpClientConnectionFactory;
import org.eclipse.jgit.util.CachedAuthenticator; import org.eclipse.jgit.util.CachedAuthenticator;
@ -105,10 +106,19 @@ public class Main {
private ExecutorService gcExecutor; private ExecutorService gcExecutor;
private static final int MB = 1024 * 1024;
/** /**
* <p>Constructor for Main.</p> * <p>Constructor for Main.</p>
*/ */
public Main() { public Main() {
final WindowCacheConfig c = new WindowCacheConfig();
c.setPackedGitMMAP(true);
c.setPackedGitWindowSize(8 * 1024);
c.setPackedGitLimit(10 * MB);
c.setDeltaBaseCacheLimit(10 * MB);
c.setStreamFileThreshold(50 * MB);
c.install();
HttpTransport.setConnectionFactory(new HttpClientConnectionFactory()); HttpTransport.setConnectionFactory(new HttpClientConnectionFactory());
BuiltinLFS.register(); BuiltinLFS.register();
gcExecutor = Executors.newSingleThreadExecutor(new ThreadFactory() { gcExecutor = Executors.newSingleThreadExecutor(new ThreadFactory() {

Loading…
Cancel
Save