> diff --git a/Documentation/git-multi-pack-index.txt 
> b/Documentation/git-multi-pack-index.txt
> index 6186c4c936..cc63531cc0 100644
> --- a/Documentation/git-multi-pack-index.txt
> +++ b/Documentation/git-multi-pack-index.txt
> @@ -36,6 +36,17 @@ expire::
>       have no objects referenced by the MIDX. Rewrite the MIDX file
>       afterward to remove all references to these pack-files.
>  
> +repack::
> +     Collect a batch of pack-files whose size are all at most the
> +     size given by --batch-size, but whose sizes sum to larger
> +     than --batch-size. The batch is selected by greedily adding
> +     small pack-files starting with the oldest pack-files that fit
> +     the size. Create a new pack-file containing the objects the
> +     multi-pack-index indexes into those pack-files, and rewrite
> +     the multi-pack-index to contain that pack-file. A later run
> +     of 'git multi-pack-index expire' will delete the pack-files
> +     that were part of this batch.

I see in the subsequent patch that you stop once the batch size is
matched or exceeded - I see that you mention "whose sizes sum to larger
than --batch-size", but this leads me to think that if the total so
happens to not exceed the batch size, don't do anything, but otherwise
repack *all* the small packs together.

I would write this as:

  Create a new packfile containing the objects in the N least-sized
  packfiles referenced by the multi-pack-index, where N is the smallest
  number such that the total size of the packfiles equals or exceeds the
  given batch size. Rewrite the multi-pack-index to reference the new
  packfile instead of the N packfiles. A later run of ...

Reply via email to