On Fri, Nov 2, 2018 at 12:00 PM Duy Nguyen <pclouds@xxxxxxxxx> wrote: > > On Fri, Nov 2, 2018 at 7:19 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > > > Farhan Khan <khanzf@xxxxxxxxx> writes: > > > > > ...Where is this in the git code? That might > > > serve as a good guide. > > > > There are two major codepaths. One is used at runtime, giving us > > random access into the packfile with the help with .idx file. The > > other is used when receiving a new packstream to create an .idx > > file. > > The third path is copying/reusing objects in > builtin/pack-objects.c::write_reuse_object(). Since it's mostly > encoding the header of new objects in pack, it could also be a good > starting point. Then you can move to write_no_reuse_object() and get > how the data is encoded, deltified or not (yeah not parsed, but I > think it's more or less the same thing conceptually). > -- > Duy Hi all, To follow-up from the other day, I have been reading the code that retrieves the pack entry for the past 3 days now without much success. But there are quite a few abstractions and I get lost half-way down the line. I am trying to identify where the content from a pack comes from. I traced it back to sha1-file.c:read_object(), which will return the 'content'. I want to know where the 'content' comes from, which seems to come from sha1-file.c:oid_object_info_extended. This goes into packfile.c:find_pack_entry(), but from here I get lost. I do not understand what is happening. How does it retrieve the pack content? I am lost here. Please assist. This is in the technical git documentation, but it was not clear. Thank you, -- Farhan Khan PGP Fingerprint: B28D 2726 E2BC A97E 3854 5ABE 9A9F 00BC D525 16EE