On Wed, Nov 11, 2015 at 4:46 AM, Stanislav <s.seletskiy@xxxxxxxxx> wrote: > Consider two repositories, A and B. > > Repo A is embedded into B by using submodule: > > git submodule add -b master <url-to-A> sub-a > > So, submodule sub-a is set to track master branch of the repo A. > > Running git submodule update --remote inside repo B will automatically > update and checkout submodule sub-a to the latest master commit (as expected). > > However, when using git clone --recursive <url-to-B>, repo B will be cloned > with submodule A checkouted to the commmit which was recorded on git > submodule add command, not the master commit. > > Expected behaviour is to automatically update checkout commit pointed by > branch, that was specified by -b flag in the git submodule add invocation. To achieve what you want to do, you can first clone B and then do a `git submodule update` using the --remote option yourself. That is cumbersome however, I agree. > > Reason for this behaviour is that line: > > https://github.com/git/git/blob/master/builtin/clone.c#L99 > > I guess, it should be changed to include --remote flag. I guess we could tweak the behavior to include the --remote flag when the branch is recorded in the .gitmodules file. Just wondering what should happen if there are both a sha1 and a branch recorded? > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html