On Wed, 2 May 2018 17:53:55 -0700 Stefan Beller <sbeller@xxxxxxxxxx> wrote: > foreach [--recursive] <command>:: > Evaluates an arbitrary shell command in each checked out submodule. > - The command has access to the variables $name, $path, $sha1 and > + The command has access to the variables $name, $sm_path, $sha1 and > $toplevel: > $name is the name of the relevant submodule section in `.gitmodules`, > - $path is the name of the submodule directory relative to the > - superproject, $sha1 is the commit as recorded in the superproject, > - and $toplevel is the absolute path to the top-level of the superproject. > + $sm_path is the path of the submodule as recorded in the superproject, > + $sha1 is the commit as recorded in the superproject, and > + $toplevel is the absolute path to the top-level of the superproject. > + Note that to avoid conflicts with '$PATH' on Windows, the '$path' > + variable is now a deprecated synonym of '$sm_path' variable. > Any submodules defined in the superproject but not checked out are > ignored by this command. Unless given `--quiet`, foreach prints the name > of each submodule before evaluating the command. This patch is fine as-is. I would go further and replace all mentions of "the superproject" to "its immediate superproject", but that is optional.