All, Thanks all for the review and the time you spent on this.
I originally ran into this problem myself and used AI to help put together the fix. However, the design questions raised here have gone beyond my own understanding of this code and its original intent, and I don't feel I can properly stand behind the patches or address the review comments with confidence. So I'm going to drop this series rather than submit something I can't fully explain. For anyone who hits the same issue: as a workaround, use 'bitbake -c cleansstate <recipe>' instead of 'bitbake -c cleanall'. cleansstate does not delete the bare repositories under DL_DIR/git2/, so the nested repos' alternates stay valid and the devtool workspace keeps working. Thanks again for the review. Jamin > -----Original Message----- > From: Jamin Lin > Sent: Friday, July 31, 2026 5:27 PM > To: [email protected]; [email protected]; > [email protected]; [email protected] > Cc: Troy Lee <[email protected]>; Jamin Lin > <[email protected]> > Subject: [PATCH v4 0/5] devtool: fix standalone clone conversion for nested > git > repos > > When a recipe has multiple git SRC_URI entries with destsuffix values nested > inside S, devtool modify left all but the top-level repo with > a .git/objects/info/alternates file pointing into the downloads cache. > > Running 'bitbake -c cleanall' then removed those shared objects, breaking all > subsequent git operations in the workspace. > Fix git_convert_standalone_clone() to walk all git repos nested inside S and > repack each one to a fully standalone clone. > > v1: > - Fix git_convert_standalone_clone() to walk all git repos nested > inside S and repack each one to a standalone clone > v2: > - Add selftest recipe devtool-test-multi-destsuffix with six nested > git SRC_URI entries to reproduce the scenario > - Add test_devtool_modify_multi_git_destsuffix_standalone to verify > all nested repos have their alternates removed after devtool modify > and remain usable after 'bitbake -c cleanall' > v3: > - Read SRC_URI directly instead of walking the tree for '.git' dirs - > also fixes repos nested inside another repo's own working tree > - Fix setup_git_repo() to register nested repos as submodules before > the initial commit (was dead code), processing bottom-up to avoid > stale submodule references > - Fix commitIgnored() to skip committing when nothing is staged, so > do_patch no longer fails on a submodule that's dirty only because > of its own nested content > - Simplify test recipe to three genuinely-nested destsuffix entries > (level1/level1/level2/level1/level2/level3), update selftest to match > v4: > - Fix regression from v3: > setup_git_repo() now detects nested repos both for fresh workspace > repos and for recipes whose source is already a git repo (fixes > test_devtool_modify_nested_gitsm). > > Jamin Lin (5): > oe/patch: Skip commitIgnored when nothing is actually staged > devtool: Register nested git repos before the initial commit > devtool-source: Make nested destsuffix git repos standalone > meta-selftest: Add devtool-test-multi-destsuffix recipe > oeqa/selftest/devtool: Add test for multiple nested git destsuffix > repos > > .../devtool-test-multi-destsuffix_git.bb | 27 +++++++ > meta/classes/devtool-source.bbclass | 16 ++++ > meta/lib/oe/patch.py | 12 +++ > meta/lib/oeqa/selftest/cases/devtool.py | 64 +++++++++++++++ > scripts/lib/devtool/__init__.py | 79 +++++++++++++------ > 5 files changed, 175 insertions(+), 23 deletions(-) create mode 100644 > meta-selftest/recipes-test/devtool/devtool-test-multi-destsuffix_git.bb > > -- > 2.43.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#243596): https://lists.openembedded.org/g/openembedded-core/message/243596 Mute This Topic: https://lists.openembedded.org/mt/120531852/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
