git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFD/PATCH] Implement pack.compression and pack-objects --compression=N

From
DHDana How <danahow@gmail.com>
Date
May 4, 2007, 19:51 UTC
Message-ID
<56b7f5510705041251v1a09103eif677c02efc53059e@mail.gmail.com>
In-Reply-To
<alpine.LFD.0.99.0705041218130.24220@xanadu.home>
On 5/4/07, Nicolas Pitre <nico@cam.org> wrote:
Show 24 quoted lines
> On Fri, 4 May 2007, Dana How wrote:
> > On 5/4/07, Nicolas Pitre <nico@cam.org> 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
Previous: Nicolas PitreNext: Nicolas Pitre
Message 10 of 11 in “Implement pack.compression and pack-objects --compression=N”
  1. Implement pack.compression and pack-objects --compression=NDana How, May 2, 2007
  2. Junio C HamanoMay 2, 2007
  3. Dana HowMay 2, 2007
  4. Dana HowMay 2, 2007
  5. Junio C HamanoMay 4, 2007
  6. Dana HowMay 4, 2007
  7. Nicolas PitreMay 4, 2007
  8. Dana HowMay 4, 2007
  9. Nicolas PitreMay 4, 2007
  10. Dana HowMay 4, 2007
  11. Nicolas PitreMay 4, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.