On Wed, Dec 16, 2020 at 03:24:28PM -0800, Junio C Hamano wrote: > Stuart MacDonald <stuartm.coding@xxxxxxxxx> writes: > > > My old understanding of git clone: > > - create sub-directory > > - create subdir/.git and whatever initial states are needed > > - clone the repo from origin into the directory > > - all never having left $CWD > > > > It's actually: > > - create sub-directory > > - cd subdir > > - create ./.git and initial states > > - clone the repo _while inside_ a gitdir > > - cd .. > > I am not sure how the above two should make any difference with the > [includeif "gitdir:<pattern>"] matching. Regardless of where your > $CWD is, the inclusion is decided on the location of the .git/ > directory we are dealing with, so as long as "subdir/.git" matches > the pattern given to "gitdir:<pattern>" the inclusion should work > the same way even if the internal implementation of "git clone" > changes between the above two. I think the question is just "are we in a repository as part of clone or not". Stuart's original world-view was that we were not, as we were creating a clone but not "entering" it. But that is not how it is implemented (nor the conceptual model I think we would want to give the user). > IIRC "includeif" is a Peff's brainchild, so I'd ask him to correct > any mistakes in the above paragraph, The notion of conditional includes was my thing, but gitdir: was Duy's. That said... > but I am a bit puzzled as to > what the true misunderstanding is, where the misunderstanding came > from, and which documentation if any we should look into improving. I think it might just be a case of mistaken assumptions. But I am certainly open to hearing from Stuart if there are places in the documentation that misled him (or could have led him better). -Peff