Re: `git submodule update --single-branch` tracks HEAD instead of branch from .gitmodules
- From
- Uwe Kleine-König <u.kleine-koenig@baylibre.com>
- Date
- Nov 21, 2025, 08:49 UTC
- Message-ID
- <llfngawozm26eo3x42ndon55qenrzeto2tgl7djr2weho43gt5@sjcdk2ppafqc>
- In-Reply-To
- <CALnO6CBdc=5KpUwweMzxpT+9CBXZVP4AG4bFS9sGucJJVmzjtQ@mail.gmail.com>
Hello,
On Thu, Nov 20, 2025 at 11:05:00AM -0500, D. Ben Knoble wrote:
Show 30 quoted lines
> On Mon, Nov 17, 2025 at 4:28 AM Uwe Kleine-König > <u.kleine-koenig@baylibre.com> 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.
Show 5 quoted lines
> --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.<name>.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