On Wed, Dec 18, 2019 at 1:17 PM Joseph Myers <jos...@codesourcery.com>
wrote:

> On Wed, 18 Dec 2019, Jason Merrill wrote:
>
> > On Tue, Dec 17, 2019 at 4:39 PM Joseph Myers <jos...@codesourcery.com>
> > wrote:
> >
> > > Points for consideration:
> > >
> > > 1. Do we want some kind of rearrangement of refs as in the 1b
> > > repository or not?
> > >
> >
> > Maybe?  How much space does that save in a clone?  How much work does a
> > partial clone add on the server, since the server needs to pack up the
> > objects for the partial clone rather than just transmitting its own
> packs?
>
> I haven't measured work on the server, and timing individual clones is
> liable to a lot of variation from variable load there, but for a single
> clone --mirror of the 1b repository (so all refs, including refs/deleted/)
> I got
>
> real    13m16.473s
> user    16m45.429s
> sys     0m33.901s
>
> and 1360 MB objects directory, but for a clone without --mirror (so only a
> limited subset of refs and the server needing to build a pack)
>
> real    15m5.554s
> user    12m11.771s
> sys     0m26.914s
>
> and 950 MB objects directory.  Adding the objects from the existing
> git-svn mirror (presumably also under refs not fetched by default)
> increases repository size by about 300 MB, based on a previous test of
> doing that (most blob and tree objects will be shared between the two
> versions of the history, but all the commit objects are separate).
>

So a 30% space savings; that's pretty significant.  Though I wonder how
much of that is refs/dead and refs/deleted, which seem unnecessary to carry
over to git at all.  I wonder if it would make sense to put them in a
separate repository that refers to the main gcc.git?

Jason

Reply via email to