Uma Srinivasan <[email protected]> writes:
> git_dir = read_gitfile(buf.buf);
> if (!git_dir)
>
> git_dir = buf.buf;
>
> Can anyone explain to me why we are replacing a failed reading of a
> git file with the original sub directory name?
A top-level superproject can have a submodule bound at its "dir/"
directory, and "dir/.git" can either be a gitfile which you can read
with read_gitfile() and point into somewhere in ".git/modules/" of
the top-level superproject. "dir/.git" can _ALSO_ be a fully valid
Git directory. So at the top of a superproject, you could do
git clone $URL ./dir2
git add dir2
to clone an independent project into dir2 directory, and add it as a
new submodule. The fallback is to support such a layout.