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

Re: [PATCH 5/8] get-repack --max-pack-size: write_object() takes 'limit' arg

From
Nicolas Pitre <nico@cam.org>
Date
Apr 9, 2007, 00:40 UTC
Message-ID
<alpine.LFD.0.98.0704082034060.28181@xanadu.home>
In-Reply-To
<46197994.70009@gmail.com>
On Sun, 8 Apr 2007, Dana How wrote:
Show 6 quoted lines
> 
> Accept new 'limit' argument and check against it
> before each group of writes.  Update delta usability rules
> for possibility of delta base being in a previously-
> written pack. Inline sha1write_compressed() so we know
> the exact size of the written data when it needs to be compressed.

It would be cleaner if the compression code was made into a function of its own I think.

Show 11 quoted lines
> @@ -448,6 +480,12 @@ static off_t write_object(struct sha1file *f,
>  			header[pos] = ofs & 127;
>  			while (ofs >>= 7)
>  				header[--pos] = 128 | (--ofs & 127);
> +			if ( limit && hdrlen + sizeof(header) - pos + datalen + 20 >= limit ) {
> +				free(out);
> +				free(buf);
> +				return 0;
> +			}
> +			sha1write(f, header, hdrlen);
>  			sha1write(f, header + pos, sizeof(header) - pos);
The above looks rather buggy to me.
Nicolas
Previous: Nicolas PitreNext: Dana How
Message 5 of 10 in “get-repack --max-pack-size: write_object() takes 'limit' arg”
  1. 5/8 get-repack --max-pack-size: write_object() takes 'limit' argDana How, Apr 8, 2007
  2. Junio C HamanoApr 9, 2007
  3. Junio C HamanoApr 9, 2007
  4. Nicolas PitreApr 9, 2007
  5. Nicolas PitreApr 9, 2007
  6. Dana HowApr 9, 2007
  7. Nicolas PitreApr 9, 2007
  8. Dana HowApr 9, 2007
  9. Nicolas PitreApr 9, 2007
  10. Junio C HamanoApr 9, 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.