From: Uwe Kleine-König Date: Fri, 21 Nov 2025 08:49:24 GMT Subject: Re: `git submodule update --single-branch` tracks HEAD instead of branch from .gitmodules Message-ID: In-Reply-To: Hello, On Thu, Nov 20, 2025 at 11:05:00AM -0500, D. Ben Knoble wrote: > On Mon, Nov 17, 2025 at 4:28 AM Uwe Kleine-König > wrote: > > for a project I'm using several submodules, showing my issue with just > > one of them > > > > $ git ls-tree @:layers | grep poky > > 160000 commit b33a8abe77081a2bdda0d89c61736473b2f9bb8b poky > > > > $ cat .gitmodules > > ... > > [submodule "yocto_poky"] > > path = layers/poky > > url = https://git.yoctoproject.org/git/poky > > branch = scarthgap > > > > $ git submodule update --init --checkout --recursive --single-branch > > ... > > Cloning into '/home/uwe/work/sri/poet-server/layers/poky'... > > remote: Enumerating objects: 8775, done. > > remote: Counting objects: 100% (3119/3119), done. > > remote: Compressing objects: 100% (158/158), done. > > remote: Total 8775 (delta 2974), reused 2961 (delta 2961), pack-reused 5656 (from 1) > > Receiving objects: 100% (8775/8775), 3.24 MiB | 15.45 MiB/s, done. > > Resolving deltas: 100% (6158/6158), completed with 391 local objects. > > From https://git.yoctoproject.org/git/poky > > * branch b33a8abe77081a2bdda0d89c61736473b2f9bb8b -> FETCH_HEAD > > > > so far so good. But: > > Is it? You've only cloned the HEAD from the origin: I don't. b33a8abe77081a2bdda0d89c61736473b2f9bb8b isn't included in the remote's HEAD, only in the scarthgap branch. > --single-branch, --no-single-branch > This option is only valid for the update command. Clone only one > branch during update: HEAD or one specified by --branch. > > Perhaps you want to use --branch here, [...] Well, the submodule is initialized from .gitmodules which has a specification of the branch. And the init steps works fine despite the submodule commit not being included in HEAD of the remote poky repo. I interpret that as --branch being provided (somewhat) implicitly. And yes I'm aware I wail about something that is documented. But the documentation is silly in the same way as the code. > [...] and _perhaps_ update --single-branch should default to > submodule..branch ? Yes please. `git submodule update --init` already does it right, just the fetch line in .git/modules/yocto_poky/config is wrong. Best regards Uwe