Did you consider adding a WindowCache.reconfigure() call in Main within the pgm package?

You could add a new command line flag to Main called --config-file that points to a user configuration file, then callers can set these settings in ~/.jgitconfig (for example) and call `jgit --config-file=$HOME/.jgitconfig log ...`.

We could also consider standardizing a ~/.jgitconfig file that is loaded by Main if present.

FWIW, the reason Main doesn't support a config file is there is no way to have that config file also specify memory settings for the JVM. Setting too large of a value for core.packedGitLimit without also increasing the heap may cause performance problems in the application. Not entirely a problem you need to solve, but that's why I didn't added a reconfigure() call here.