From 8b98574565d17b9261e7696ee8e83a6c0740a29c Mon Sep 17 00:00:00 2001 From: "Lance R. Vick" Date: Thu, 16 Feb 2023 21:15:10 -0800 Subject: [PATCH] clone only required ref in git_clone --- Makefile | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 86b59d7..2569eba 100644 --- a/Makefile +++ b/Makefile @@ -161,11 +161,17 @@ check_executables := $(foreach exec,$(executables),\$(if \ $(shell which $(exec)),some string,$(error "No $(exec) in PATH"))) define git_clone - [ -d $(1) ] || git clone $(2) $(1) - git -C $(1) checkout $(3) - git -C $(1) rev-parse --verify HEAD | grep -q $(3) || { \ - echo 'Error: Git ref/branch collision.'; exit 1; \ - }; + [ -d $(1) ] || \ + mkdir -p $(FETCH_DIR) && \ + mkdir $(1).tmp && \ + git -C $(1).tmp init && \ + git -C $(1).tmp remote add origin $(2) && \ + git -C $(1).tmp fetch origin $(3) && \ + git -C $(1).tmp -c advice.detachedHead=false checkout $(3) && \ + git -C $(1).tmp rev-parse --verify HEAD | grep -q $(3) || { \ + echo 'Error: Git ref/branch collision.'; exit 1; \ + } && \ + mv $(1).tmp $(1); endef define apply_patches