From cf295741650aaffcb03866ab15a0c7175c3dc882 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 27 Aug 2022 16:39:47 +0300 Subject: download: Use shallow clones for big projects Downloading coreboot and U-Boot takes quite the disk space and bandwith. We don't need to download entire repos, only the revisions that we are interested in. Use the --depth=1 option to only download the files we need. Since the initial clones may not have our target revision, always try to fetch it. Signed-off-by: Alper Nebi Yasak --- resources/scripts/download/coreboot | 18 +++++++++--------- resources/scripts/download/u-boot | 22 +++++++++++----------- 2 files changed, 20 insertions(+), 20 deletions(-) (limited to 'resources/scripts') diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 965c00f6..80fff097 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -152,21 +152,21 @@ downloadfor() { if [ ! -d coreboot ]; then printf "Download coreboot from upstream:\n" - git clone https://review.coreboot.org/coreboot || rm -Rf coreboot + git clone --depth=1 https://review.coreboot.org/coreboot || rm -Rf coreboot if [ ! -d coreboot ]; then printf "WARNING: Upstream failed. Trying backup github repository:\n" - git clone https://github.com/coreboot/coreboot.git || rm -Rf coreboot + git clone --depth=1 https://github.com/coreboot/coreboot.git || rm -Rf coreboot fi if [ ! -d coreboot ]; then printf "ERROR: download/coreboot: Problem with git-clone. Network issue?\n" cd ../; return 1 fi - else - ( cd coreboot/; git pull || touch ../build_error ) - if [ -f ../build_error ]; then - printf "ERROR: download/coreboot: Problem with git-pull. Network issue?\n" - cd ../; return 1 - fi + fi + + ( cd coreboot/; git fetch --depth=1 origin "${cbrevision}" || touch ../build_error ) + if [ -f ../build_error ]; then + printf "ERROR: download/coreboot: Problem with git-fetch. Network issue?\n" + cd ../; return 1 fi cp -R coreboot "${cbtree}" || touch ../build_error @@ -184,7 +184,7 @@ downloadfor() { cd ../../; return 1 fi - git submodule update --init || touch ../../build_error + git submodule update --init --depth=1 || touch ../../build_error if [ -f ../../build_error ]; then printf "ERROR: download/coreboot: Unable to update submodules for tree '%s'\n" "${cbtree}" cd ../../; return 1 diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index 2e086337..5fc80868 100755 --- a/resources/scripts/download/u-boot +++ b/resources/scripts/download/u-boot @@ -125,12 +125,12 @@ downloadfor() { if [ ! -d "${uboot_dir}" ]; then printf "Download u-boot from upstream:\n" - git clone https://source.denx.de/u-boot/u-boot.git \ + git clone --depth=1 https://source.denx.de/u-boot/u-boot.git \ "${uboot_dir}" || \ rm -Rf "${uboot_dir}" if [ ! -d "${uboot_dir}" ]; then printf "WARNING: Upstream failed. Trying backup github repository:\n" - git clone https://github.com/u-boot/u-boot.git \ + git clone --depth=1 https://github.com/u-boot/u-boot.git \ "${uboot_dir}" || \ rm -Rf coreboot fi @@ -140,14 +140,14 @@ downloadfor() { "download/u-boot" return 1 fi - else - git -C "${uboot_dir}" pull || touch build_error - if [ -f build_error ]; then - printf \ - "ERROR: %s: Problem with git-pull. Network issue?\n" \ - "download/u-boot" - return 1 - fi + fi + + git -C "${uboot_dir}" fetch --depth=1 origin "${ubrevision}" || touch build_error + if [ -f build_error ]; then + printf \ + "ERROR: %s: Problem with git-fetch. Network issue?\n" \ + "download/u-boot" + return 1 fi cp -R "${uboot_dir}" "${ubtree}" || touch build_error @@ -167,7 +167,7 @@ downloadfor() { return 1 fi - git -C "${ubtree}" submodule update --init || touch build_error + git -C "${ubtree}" submodule update --init --depth=1 || touch build_error if [ -f build_error ]; then printf "ERROR: %s: Unable to update submodules for tree '%s'\n" \ "${ubtree}" -- cgit v1.2.1