Re: [git-sizer] Implications of a large commit object

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

 



On Wed, Mar 14, 2018 at 09:33:32AM +0100, Michael Haggerty wrote:

> Maybe your migration tool created a huge commit message, for example
> listing each of the files that was changed.
> 
> AFAIK this won't cause Git itself any problems, but it's likely to be
> inconvenient. For example, when you type `git log` and 7 million
> characters page by. Or when you use some GUI tool to view your history
> and it performs badly because it wasn't built to handle such enormous
> commit messages.

Probably one such commit won't break the bank, but it will make history
traversals that cross it slower (e.g., "--contains", merge-bases, etc).
We'll load the whole 7MB object just to find its parents. If you imagine
the average commit object is more like 1k and that current traversals
bottleneck on loading the commit object bytes (both of which I think are
roughly accurate), then crossing that one commit in a traversal is
equivalent to crossing 7000 "normal" commits in cost.

At least until Stolee's serialized commit graph work is merged, at which
point it will only be expensive if we actually try to show the commit
message for that particular object.

-Peff



[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]

  Powered by Linux