Subject: Re: pack count on repo.or.cz [was "Medium term dreams"]

From: Petr Baudis <[email-masked]>
Date: Tue, 2 Sep 2008 13:15:31 +0200

On Mon, Sep 01, 2008 at 09:14:33PM -0400, Jeff King wrote:
> On Tue, Sep 02, 2008 at 03:04:10AM +0200, Petr Baudis wrote:
> 
> > Unfortunately, I'm not aware how to decreate the packs count with
> > current Git without losing _any_ objects. So yes, you could say that
> > this is an artifact of the forking infrastructure - we just can't afford
> > to lose objects.
> 
> Hmm, I thought that was the point of adding the "-A" flag to git-repack.

Ok, I did

	git repack -A -d

in repo.or.cz's git.git. What next? I have brand-new

	-rw-rw-r-- 1 root root  1314056 2008-09-02 13:07 pack-d19ca8b0cfd0e3357c475a3e96ce55b9f7195667.idx
	-rw-rw-r-- 1 root root 17344999 2008-09-02 13:07 pack-d19ca8b0cfd0e3357c475a3e96ce55b9f7195667.pack

but all the old packs too; git repack didn't delete anything,
git prune-packed seems to have no effect either.

> Though an even simpler solution, since you control all of the repos, is
> to just temporarily add references from the "parent" of the fork to
> every ref of every forked child. Then do the repack in the parent, which
> should then contain all of the objects for all of the children, delete
> the temporary references, and prune in the children (who should see most
> of their objects now in the parent).

So not just refs but also alternates? What if someone accesses the
reposiory at that moment? I would also need to make the symlinks quite
densely to avoid refs/forkee/-induced loops.

I might as well just use a common repository for all the forks then. But
this does not scale at all for dumb transports, does it?

-- 
				Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC.  -- Bill Gates