On Tue, Oct 4, 2016 at 11:04 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Jeff King <peff@xxxxxxxx> writes: > >> Actually, I like that a bit better. It would not cover the case where >> you have not actually checked out any of the submodules (or at least not >> called "submodule init", I guess?). But arguably that is a sign that the >> auto-recurse behavior should not be kicking in anyway. > > Yeah, the "no init, no recursion" line of thought is very sensible. > I like it. > Bear in mind that "submodule init" only fuzzes around with .git/config. It doesn't touch .git/modules (i.e. cloning/fetching), that is to be done with the update command. So if we also want to cover the case of init'd submodules, but not cloned/checked out submodules, we'd rather want to consult .git/config whether there is any submodule.* option set, though that seems more expensive than just checking for files inside the modules directory.