From: Nguyen Thai Ngoc Duy Date: Tue, 03 May 2011 04:43:35 GMT Subject: Re: [PATCH 3/3] sparse checkout: do not eagerly decide the fate for whole directory Message-ID: In-Reply-To: 2011/5/3 Thiago Farina : >> This generally works as long as there are no patterns to exclude parts >> of the directory. In case of sparse checkout code, the following patterns >> >>  t >>  !t/t0000-basic.sh >> >> will produce a worktree with full directory "t" even if t0000-basic.sh >> is requested to stay out. >> ... >>        prefix[prefix_len++] = '/'; >> >> -       /* included, no clearing for any entries under this directory */ >> -       if (!ret) { >> -               for (; cache != cache_end; cache++) { >> -                       struct cache_entry *ce = *cache; >> -                       if (strncmp(ce->name, prefix, prefix_len)) >> -                               break; >> -               } >> -               return nr - (cache_end - cache); >> -       } >> +       /* If undecided, use parent directory's decision in defval */ > What means "use parent directory's decision"? Could you make this > comment more clearer? Take the example patterns in commit message, we know that we match directory "t" (pattern 1). When we check t/0001-init.sh, no patterns match it. But because it's under "t", so we consider it matched. On the other hand, t/t0000-basic.sh will match pattern 2 and override parent directory's decision. >> +       if (ret < 0) >> +               ret = defval; >> >> -       /* excluded, clear all selected entries under this directory. */ > Start with capital letter? It's a line removal, what can I do about it? -- Duy