Re: [QUESTION] how to quickly find an oid in the git repository
- From
ZheNing Hu <adlternative@gmail.com>
- Date
- May 31, 2021, 11:30 UTC
- Message-ID
- <CAOLTT8Rsy-XRys6fv3EbUJSUbHFCG4=w9uR7Bz8N8u8PWHgPhw@mail.gmail.com>
- In-Reply-To
- <YLP7kuFNfVZK+xCK@coredump.intra.peff.net>
Jeff King <peff@peff.net> 于2021年5月31日周一 上午4:54写道:
Show 12 quoted lines
> > On the other hand, oid_object_info_extended() will parse an object > > in depth, using it will seriously affect performance. So I want to know > > if there is a function that can quickly find the oid? I searched in > > `object-name.c`, `object-file.c`, and there seems to be no clue... > > You should be able to use oid_object_info_extended() here. It will try > to do as little work as possible to fulfill the items requested in the > object_info struct. So a blank one (or even passing NULL) will return an > error if the object doesn't exist, but not otherwise. > > There's also has_object_file(), which is essentially a wrapper for this. >
This is exactly what I want. It seems that the real performance problem is not because of the use of oid_object_info_extended(), but the possible copy of the object data in it.
> -Peff
Thanks! -- ZheNing Hu