Re: t3010 broken by 2eac2a4
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Aug 22, 2013, 21:59 UTC
- Message-ID
- <CAPig+cSgM-kO0Mk9qbGfLR8DZkYQt60Va4N2wfRBVqmReTPowQ@mail.gmail.com>
- In-Reply-To
- <xmqq38q1qu3l.fsf@gitster.dls.corp.google.com>
On Thu, Aug 22, 2013 at 5:43 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 19 quoted lines
> Eric Sunshine <sunshine@sunshineco.com> writes: >> On Thu, Aug 22, 2013 at 5:32 PM, Junio C Hamano <gitster@pobox.com> wrote: >>> Now, I am curious how it breaks on OS X. >>> >>> My suspition is that "ignore_case" may have something to do with it, >>> but what 2eac2a4c (ls-files -k: a directory only can be killed if >>> the index has a non-directory, 2013-08-15) uses are the bog-standard >>> cache_name_exists() and directory_exists_in_index(), so one of these >>> internal API implementation has trouble on case insensitive >>> filesystems, perhaps? I dunno. >> >> That's exactly my suspicion at the moment. It's an obvious difference >> between Linux and OS X. I'm just in the process of trying to compare >> between the two platforms. > > Or perhaps de->d_type does not exist? In such a case, we end up > doing get_index_dtype() via get_dtype(), but in this codepath I > suspect that we do not want to. We are interested in the type of > the entity on the filesystem.
de->d_type exists on both platforms. get_dtype() is never called.
However, I did discover that treat_path() is being invoked fewer times on OSX than on Linux. For instance, in the repository created by t3010, treat_path() is called 19 times on Linux, but only 17 times on OSX.