| Message ID | 20260731092634.1127862-1-jamin_lin@aspeedtech.com |
|---|---|
| Headers | show
Return-Path: <jamin_lin@aspeedtech.com> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FA75C55174 for <webhook@archiver.kernel.org>; Fri, 31 Jul 2026 09:26:49 +0000 (UTC) Received: from TYPPR03CU001.outbound.protection.outlook.com (TYPPR03CU001.outbound.protection.outlook.com [52.101.126.106]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.2924.1785490002156443016 for <openembedded-core@lists.openembedded.org>; Fri, 31 Jul 2026 02:26:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@aspeedtech.com header.s=selector1 header.b=EaUsyJxg; spf=pass (domain: aspeedtech.com, ip: 52.101.126.106, mailfrom: jamin_lin@aspeedtech.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aM5WjC0jjk3NhwLTUzu6DBLfxYS5qRPTEkIA3er2eRAcLzZVMRVSmn0Neu8uYMAuUMGZqK6KCQluEGwBAEd+b4vqpgPbK4psrNcCYNaLzW5b5hKhoRnZdyjRml4R7vET6QpV8Rx0GNHpMYxkVpfaFd+lV1BupmvMFf7Cfo0vwBT//MLL0DRSXaCLJ3AHZ0t8vcXe+W5JESyg/uECWqP1ZPinskzBO6iPEH67UK0vjYLy11k1pdoGuzIvtKLMlv2S4PyTgVVApwjxI0RFbEfPOJNd/d3DeCtSQrYenQ3p1nxiHdCmJiXpxPLyW5BevNpe2OiNOYZy5/vb92FeJWX7Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AyEfFPWP6/U4WCD2YvX4j/FHLfiwPPovinHuWQqoRfY=; b=O4NnVhYjNTXRORbTNGTVeMXrxijW1LjVNnDG7nkQmXQyxvRgyKHGDeY0nVfy26XgWygKV7VVidgdTWY/hNAM4Mk8tgIk7JC8SyMT/t79Qj25fQmqNU04p8uHWbcPZvB+iGBFQheKXLXQA4P+AyFywA0KfkcPzMl4AKOUPK5+nnxjRDHrYYiQOJ6x6TUYkd8XJBGr46L9R6wE/ae6Y31cgqaHAKpaluE3plkm6LPO7b0suSLOZslrcjE5bQtpZzIiodlQcPP1QtS62NYbDb+hQpnyuVClYK0gn89z63T59K346btCeerqfzp89gp4T2ZSQmJXTonU8b78GwuDhylmhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AyEfFPWP6/U4WCD2YvX4j/FHLfiwPPovinHuWQqoRfY=; b=EaUsyJxg+v6q5GAjW9cEYFZkZdw6jcgHUDSMLVgNE+6bXvRPyPKCKbOi0l2SrASOBSkWQKG1q1vjCoptIMI04zjrHQHPGYwbYg3dHH9XU7+SByt88Af5VrMIMoEFpp76xXw55NtuWrdkzreFe/0h14pXliHyTghpcZ+0+j1HqM4oA0tmXEg1CjuzJ7L3zYrqKAup3Bw88C8z7k9JgVcK+VMRfNENYu0eyJqu3JQ6djlPJzSx7SXIoUmJ6kn5pUlbT+hgzpgbIdAtlm6N9tkxHNLyZiHysz0o9G/hN5+s7HbJnSSPotTbq7zTfry+BNJwKm3V1fhfnbyzeAsrRMMlsw== Received: from TYZPR06MB4980.apcprd06.prod.outlook.com (2603:1096:400:1cc::10) by SEZPR06MB5295.apcprd06.prod.outlook.com (2603:1096:101:7b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 09:26:35 +0000 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com ([fe80::ea8a:7cb7:4822:2fb3]) by TYZPR06MB4980.apcprd06.prod.outlook.com ([fe80::ea8a:7cb7:4822:2fb3%6]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 09:26:35 +0000 From: Jamin Lin <jamin_lin@aspeedtech.com> To: "openembedded-core@lists.openembedded.org" <openembedded-core@lists.openembedded.org>, "alex.kanavin@gmail.com" <alex.kanavin@gmail.com>, "paul@pbarker.dev" <paul@pbarker.dev>, "mathieu.dubois-briand@bootlin.com" <mathieu.dubois-briand@bootlin.com> CC: Troy Lee <troy_lee@aspeedtech.com>, Jamin Lin <jamin_lin@aspeedtech.com> Subject: [PATCH v4 0/5] devtool: fix standalone clone conversion for nested git repos Thread-Topic: [PATCH v4 0/5] devtool: fix standalone clone conversion for nested git repos Thread-Index: AQHdIM6uAQWEu7O8G0OxcM2jd3A8oA== Date: Fri, 31 Jul 2026 09:26:35 +0000 Message-ID: <20260731092634.1127862-1-jamin_lin@aspeedtech.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR06MB4980:EE_|SEZPR06MB5295:EE_ x-ms-office365-filtering-correlation-id: 21d8cb6d-f442-4d80-60e4-08deeee5d0f6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|23010399003|1800799024|38070700021|56012099006|5023799004|10067099003|18002099003; x-microsoft-antispam-message-info: aQ5gH5I8cLGyQugQmsYQl9Vm2cESzE9/N817+EN3bfzidS6JKPW9FjnzByb8AWDGbza4rO9dTYfFC10WCHQ93uJG1Jtz+vO6hlEUP0dFuXX3RwFJD+7n3+uMUjl3VXK/rhhNzzC433S8mOfXx0ECfI0gDTj6XHaVxWib1dfmJ4cm1dcw+S+gcyXhf8Ozvuy61FsHeLdFUBNx9XfGFLr9iKhJBj5306ZlivXa0bjmWF3NEmTm3JzQLihONt5fllwfAg0XTH/j3hf+oilEwdH5j5X3N31GnFqNsKir+Elw0gym48WlW1T9tcnthFwPzbVZL/ZwSLUgMpMZGJXBLds11O0Mdf3Wx2GtEhFrsU6dgepwOxuEq9+9Tgm3UKAaiVaO+qce78R/Qi95++TdqzsThJVrF3CgavoLq5vFFW6agZc4wEU6CAAEhCGclPrCics2mKJAueLwieMIxOzckDeJV1KoJ9PK9vBemaqI+KUDQB3D0ab7rYGYxdrMTl5TXrveAkQRF4gNw6ZpfgNZQqpKRYFL9AAtw3P87xnnIuA+mOJVj1FO/IxCS6xSpGckPymS/2+otjYMqeDmUSzn5d2bbAMHGxjvUMcZSGdKiHcoH8ulUpfCeJWrSRGmSLpoyJ9kF8hAYUUaRMZVSiiQSrzDEyup8o5xHrMBbdWz7sAvhxahtFwxQsNen4G4MrlMh3hn+4QIkkjBdsbnB3A8OaqzrrpOPyJHGnXApPJQ9d31Jec= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR06MB4980.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(23010399003)(1800799024)(38070700021)(56012099006)(5023799004)(10067099003)(18002099003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: GBVEbkNo7Xua3WZfDvCEuHY6UDfXqEsslL9rMWgZz9AkNYSheuC0wy570t7NywBqij8XiU61p1whZuym7+2veT3m3BH8SEyCVtEJDmUCVL3nmII2yPRJu8uL2bSgenzZg2SXwl8Ktq/c/c1jSyVhFzOtrj1dtYzET0xK0FTrE1TUvHzOVb+QoeI+Dkmf4xByKMB0/0igip/LdhQsYnZh9XxshewEvFi81Q+/pAW0gvch568qwvAsTqde7DS3sJeci30+fiaYuI+uecuDDFLjqDJ5HWSFedEypQQdCc/5+nnPWIaE/Adh+3FhvTXnLM0gm6d4blcN3CBoDUeiy43fKCU3nDzZOetJbG4pJR7+t/2C/J5QeqF2gsB2mWdmjG8lg1vpTz3rQQ503Y+bqHg77oyTte54D2jT4pbH8/SxzEgmE2UT432igg8ZEDOst1aPKtpU1ehCYZazBzB0Q4BcEJiFsS28TK+FRC2NLh4u/gT5jYnJIWIsucue2w40uqle4E++UHOmd7UOTnUzvYf/kK0iCW+Ldz0oeUhr8s00MujhQ8INmSslC2xstHCx9a6VouBnRvpuGU259d92vn+yDPwmXzmYTkDmCeIDD3P0rCutZwPQOt1rM6RvpWWFhHuUYIl+/rLOuUMiVaElqIvzcde5ZcgIGdPfQMrJcMZnvn7IJJI9AqDDUgSTXQm5CsDq+yAh/fnUz8rPQuvdG0pBjgz7CYpzOVkLNpGBWCVqqNX1ZOztoML2oCttXbmwlW6mz0g1QigDi5oyGVwR2HtcTk4yar/5vT7xf2G5Opke5GtdZxUl6biBgqZLHrStbYH+CLnAWK9ZCX2NJsFDwUcwToX4yYxJcGickXMsYtGI7P475kFJzG9zF5lm3HbDfsU13dqqv1W4Xl1JbNirbkGOn8EbuJHfdczfFujkTUCv0XUA7ovZy+YYn3sL4RGcU/+27fU+hUm9So4A5F2PpHLifRX5MHWFJz1mWyznSwa75lpGy3kTXuYUHoZI29441++vwZMeLpjnaRAt15GtHObvu0t8NfnqLucYqBXTf8MjztpEDuw7Ced6q/VMmNRS6nX/5N8PAUjPgE4rIR+Q4L9+QCwrJ1LHstzRAvQnk5CmdpmJQX+A9JBQKqc60yZpvK/wIQA42ipy0xo3bdhaVZlJ+TvEzo1mDJUa9FjG5L6xB9ykISBCopVAIYtLEwv1NALj99Bg+lHnjzDzfczwcBPJ6Sqr4tjuc62FT0mEJdOR1S5cVKp4M+YkryT+8ozP3jtaLVilmu0OyJ+SQP6HueSZy5v68BWAqTR4XDqkbmyMPBvwT86b44i+9z7lNjwhULzxCy/IMFVt4YaPT+tOzgkitVBUIQovUwR8znjNnCKIFv39ILRoGgBs063P9zHlGFFvD/1hcUbNIGfWpREi0+NGzhIekqdE0XlXtkcAcGC03+XuOGDpnA2CeMBTO/OSyHBGR6pE0x1YG+m6GcRheLieGl97O49iFqlPwaotdvDAv+WYMzmxA+RjiTfczosb5cr+clwgt6qFtT4LB3tqJtl4iEZGarAb1qA5lXpBnC/zZuT0dPPuaDv8z+MN7ZVlC0MJERyOj2I1T/I4gEPtYsGvMrwqnPY3ruXOz2qEhRaJac5fnf+HP37A11pDaFn0Y5btVEqXDuo5+qVg6BWgBiizAlLuN8ZCS0fD+k/gUSpQEvGl7xGM7DDW/Mlj6AJUlq2EkDooJSrd2y0fZzMSBfBXPQ== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: k+JyaHQBU/dcmmmXTWfWAppQ7hYCQMcmRBpiGk98VWgVMyfi3Hm/Xs78xcMuxHbagE1kKb6MPcnjf3GcZ2Zj9LpMoc/pBn3H3gK3XxA2KAin3yJVvPhxqbx5t4zBKU0tNjsdjqWcpAndLdDxS8bhpSUSKM/Vi2MyrulQmDfqzFaS8uqeGrAnWlDrwlvsaKH2HGnA+kvzooZ3xjUTp89vtVpBbRHbwRU437KD7Sr++YVObw6XvRSm975vUziE4wEquXqegYIUkvKlfQbnOt8Zw4V+wqSUotmpGSb5ppMNIUJ+TvyNlw2FrCem+ao0ryvbS24X1/HDclVTmKvpewUEPw== X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR06MB4980.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21d8cb6d-f442-4d80-60e4-08deeee5d0f6 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jul 2026 09:26:35.3651 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: BJE8XTng9EsrC7t4yyhKoph9U80X+Hw+b62K5JmqzEiM1ca4WUksSA7ChaSBRx7TQrGaCk379yOkZcnHopysvm6bRPd8Io/zrJfEmo5q7b4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5295 List-Id: <openembedded-core.lists.openembedded.org> X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for <openembedded-core@lists.openembedded.org>; Fri, 31 Jul 2026 09:26:49 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/242412 |
| Series |
devtool: fix standalone clone conversion for nested git repos
|
expand
|
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