From 775f9d56ce0684ceee269aaeb43eb09227f17ef1 Mon Sep 17 00:00:00 2001 From: Cedric CHEDALEUX Date: Mon, 17 Feb 2025 10:41:32 +0100 Subject: [PATCH] scripts/feeds: shallow clone for specific commit update When a feed is referenced with a specific commit (i.e. ^), a full clone was performed and a branch was created from the sha1 and named with the sha1. Other git clones operations are shallowed. As Git does not support clone at a specific commit, let's first perform a shallow clone to latest commit, then fetch the relevant commit and finally checkout it (no more 'pseudo' branch). It saves bandwith and significantly speeds up the feed update process. Signed-off-by: Cedric CHEDALEUX Link: https://github.com/openwrt/openwrt/pull/18003 Signed-off-by: Robert Marko (cherry picked from commit 32d0a57dc10811a24816e51f10e55963f40fe462) Link: https://github.com/openwrt/openwrt/pull/18168 Signed-off-by: Christian Marangi --- scripts/feeds | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/feeds b/scripts/feeds index aee73e793f5..3df947c9c70 100755 --- a/scripts/feeds +++ b/scripts/feeds @@ -157,7 +157,7 @@ my %update_method = ( 'src-git' => { 'init' => "git clone --depth 1 '%s' '%s'", 'init_branch' => "git clone --depth 1 --branch '%s' '%s' '%s'", - 'init_commit' => "git clone '%s' '%s' && cd '%s' && git checkout -b '%s' '%s' && cd -", + 'init_commit' => "git clone --depth 1 '%s' '%s' && cd '%s' && git fetch --depth=1 origin '%s' && git -c advice.detachedHead=false checkout '%s' && cd -", 'update' => "git pull --ff-only", 'update_force' => "git pull --ff-only || (git reset --hard HEAD; git pull --ff-only; exit 1)", 'post_update' => "git submodule update --init --recursive",