From: Dana How Date: Fri, 04 May 2007 19:51:15 GMT Subject: Re: [RFD/PATCH] Implement pack.compression and pack-objects --compression=N Message-ID: <56b7f5510705041251v1a09103eif677c02efc53059e@mail.gmail.com> In-Reply-To: On 5/4/07, Nicolas Pitre wrote: > On Fri, 4 May 2007, Dana How wrote: > > On 5/4/07, Nicolas Pitre wrote: > > > I think that would make sense to have separate configs for pack and > > > loose object compression. When not specified they should simply default > > > to core.compression if it exists. Otherwise I'd suggest that pack > > > compression default level be Z_DEFAULT_COMPRESSION and loose object > > > compression default level be Z_BEST_SPEED. This would make interactive > > > operations like git-add and git-commit even faster by default. > > I agree with your Z_BEST_SPEED idea. I did not include it in > > the patch b/c I didn't want to change any behavior in the absence > > of new config settings. > > Are you actually arguing for *3* different compression-related config > > variables? > Yes. > > > How about: > > (a) core.compression controls loose objects. defaults to Z_BEST_SPEED. > > (b) pack.compression controls packing. defaults to Z_DEFAULT_COMPRESSION > > if neither variable exists. defaults to core.compression if only that exists > Yes, although I wouldn't default pack.compression to core.compression > if pack.compression doesn't exist. The documentation about > core.compression currently talks > (wrongly) only about loose objects anyway, so making pack.compression > stand on its own won't be that bad. Now that I'm awake your original quote at the top suggests: (a) zlib_compression_level = isset(core.loosecompression) ? core.loosecompression : isset(core.compression) ? core.compression : Z_BEST_SPEED; (b) pack_compression_level = isset(pack.compression) ? pack.compression : isset(core.compression) ? core.compression : Z_DEFAULT_COMPRESSION; Your later reaction to my quoted (a)/(b) table suggests: (a) zlib_compression_level = isset(core.compression) ? core.compression : Z_BEST_SPEED; (b) pack_compresion_level = isset(pack.compression) ? pack.compression : Z_DEFAULT_COMPRESSION; In either case, the C variable zlib_compression_level controls compression level for loose objects, and pack_compression_level controls compression in a pack. "isset()" means an active setting does appear in a config file (it could be the default value). The 2nd behavior table is sufficient for me and simpler than my patch. Do you want the 1st or 2nd behavior? Thanks, -- Dana L. How danahow@gmail.com +1 650 804 5991 cell