From: Nicolas Pitre Date: Mon, 09 Apr 2007 00:40:05 GMT Subject: Re: [PATCH 5/8] get-repack --max-pack-size: write_object() takes 'limit' arg Message-ID: In-Reply-To: <46197994.70009@gmail.com> On Sun, 8 Apr 2007, Dana How wrote: > > 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. > @@ -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