Re: CAREFUL! No more delta object support!

From: Christopher Li <git@chrisli.org>
Date: 2005-06-28 21:06:25
On Tue, Jun 28, 2005 at 02:40:56AM -0700, Junio C Hamano wrote:
> >>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:
> Still a good space reduction.  Good job!
> 
> I am now dreaming if we someday would enhance the mechanism with
> append-only updates to the *.pack files with complete rewrite of
> the *.idx files, and get rid of files under .git/objects totally.

No offense my friend, this has been done. It's name is mercurial.

> This would make things reasonably friendly to rsync.  The kernel
> pack has around 60M pack with 1.1M index, so everyday use would
> involve incremental updates to the pack [*1*] and full download
> of the index file.

It still have other open issue. Now it would be harder to not sync
all the heads. If I just want the clean Linus-2.6 tree, I have to
dig it out from the pack file which mixing with other heads. 

You could host different projects with it's own pack file. That
will lost the space saving on co-hosting projects.

So I am not convince rsync is the way to go in long run. You need
to have your own network syncing method.

> 
> [Footnote]
> 
> *1* Presumably many objects are deltified against older objects
> which is suboptimal.  Most likely the newer objects are accessed
> far more often and they are what we would want to keep in full
> not as delta.  So even with this scheme we would want to have
> weekly repacking.  Interestingly enough, pack-objects gets the
> objects via usual read_sha1_file() interface so it can produce a
> new pack from an existing pack.

It sounds like you are suggesting backward delta. Keeping the
latest node in full and using delta to access the old one. It should
work but it will lose the append only property.

Chris

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Wed Jun 29 00:29:47 2005

This archive was generated by hypermail 2.1.8 : 2005-06-29 00:29:51 EST