Re: RFC: [PATCH] Support incremental pack files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Mon, 26 Feb 2007, Martin Koegler wrote:

> On Fri, Feb 23, 2007 at 12:10:35AM -0800, Junio C Hamano wrote:
>
> >   $ P=.git/objects/pack
> >   $ git rev-list --objects v1.5.0 |
> >     git pack-objects --delta-base-offset \
> >           --depth=30 --window=100 --no-reuse-delta pack
> >   ...
> >   6fba5cb8ed92dfef71ff47def9f95fa1e703ba59
> >   $ mv pack-6fba5cb8ed92dfef71ff47def9f95fa1e703ba59.* $P/
> >   $ echo 'Post 1.5.0' >$P/pack-6fba5cb8ed92dfef71ff47def9f95fa1e703ba59.keep
> >   $ git gc --prune
> > 
> > This does three things:
> > 
> >  - It packs everything reachable from v1.5.0 with delta chain
> >    that is deeper than the default.
> > 
> >  - The pack is installed in the object store; the presence of
> >    .keep file (the contents of it does not matter) tells
> >    subsequent repack not to touch it.
> > 
> >  - Then the remaining objects are packed into different pack.
> > 
> > With this, the repository uses two packs, one is what I'll keep
> > until it's time to do the big repack again, another is what's
> > constantly recreated by repacking but contains only "recent"
> > object.
> 
> This could be a practical solution for me. The biggest disadvantage of 
> this solution is, that each pack file is at least >= 60 MB.

Junio has a branch he rewinds sometimes. That's why he does not do the 
obvious, which should work for you:

$ git gc --prune
$ for p in .git/objects/pack/*.pack; do
	keepfile=`echo $p | sed s/pack$/keep/`
	echo "Keep all current packs as-are" > $keepfile
  done

You should run this from time to time. You can run "git gc --prune" more 
often, of course...

Hth,
Dscho

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]