Subject: Re: If you would write git from scratch now, what would you change?

From: Jakub Narebski <[email-masked]>
Date: Mon, 26 Nov 2007 21:17:55 +0100

On Mon, 26 Nov 2007, Dana How wrote:
> On Nov 25, 2007 1:48 PM, Jakub Narebski <[email-masked]> wrote:
>
> > If you would write git from scratch now, from the beginning, without
> > concerns for backwards compatibility, what would you change, or what
> > would you want to have changed?
> 
> Currently data can be quickly copied from pack to pack,
> but data cannot be quickly copied blob->pack or pack->blob
> (there was an alternate blob format that supported this,
>  but it was deprecated).  Using the pack format for blobs
> would fix this.  It would also mean blobs wouldn't need to
> be uncompressed to get the blob type or size I believe.

Could you do some benchmark for repository with your large objects
as loose objects created with and without core.legacyHeaders (created 
with git pre 1.5.3), and as single blob packs, perhaps kept, with 
_undocumented_ (except for RelNotes) gitattribute delta unset for
those files?

>>From Documentation/RelNotes-1.5.3:

  - We used to have core.legacyheaders configuration, when
    set to false, allowed git to write loose objects in a format
    that mimicks the format used by objects stored in packs.  It
    turns out that this was not so useful.  Although we will
    continue to read objects written in that format, we do not
    honor that configuration anymore and create loose objects in
    the legacy/traditional format.

  - "pack-objects" honors "delta" attribute set in
    .gitattributes.  It does not attempt to deltify blobs that
    come from paths with delta attribute set to false.

  - diff-delta code that is used for packing has been improved
    to work better on big files.

The last part is thanks to your comments, complaints and efforts, Dana.

-- 
Jakub Narebski
Poland