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 <alpernebiyasak@gmail.com>
fsdg20230625
Alper Nebi Yasak 2022-08-27 16:39:47 +03:00
parent ef39e05bb5
commit cf29574165
2 changed files with 20 additions and 20 deletions

View File

@ -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

View File

@ -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}"