Skip to content

armbian/gitutils

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Armbian logo
Armbian Linux Kernel Caching

GitHub Workflow Status

Twitter Follow Discord Liberapay patrons

Preface

  • Full, non-shallow clones of Linux kernel trees are multiple gigabytes in size, and take a lot of time to process,
  • Shallow clones are much smaller, but cloning/fetching shallow trees impose a huge load on the git server (eg: kernel.org),
  • kernel.org has git bundles available for download over HTTPS/CDN (simple file download). In fact they recommend their use and have instructions

What this repo does?

  • it does the heavy lifting - grabbing bundles, updating them from live git servers, and makes them shallow and ready for consumption,
    • Produced shallow bundles are around 250mb as of 5.18,
    • Produced shallow bundles include all tags for the version involved, including -rc tags,
    • Scheduled runs update the bundles every 24hs, using GitHub actions, including caching,
    • They are deployed to two locations, as Github releases and uploaded to main Armbian CDN

How to use

  • Example for 5.17:
# Download the bundle from this repo's Github releases.
wget --continue --progress=dot:giga -O "linux-5.17.gitbundle" "https://github.com/armbian/gitutils/releases/download/latest/linux-5.17.gitbundle"
git init linux-5.17 # init an empty repo
cd linux-5.17 # go into it
git remote add "linux-5.17-bundle" "../linux-5.17.gitbundle" # add the downloaded bundle as a remote
wget -O ".git/shallow" "https://github.com/armbian/gitutils/releases/download/latest/linux-5.17.gitshallow" # download .git/shallow
git fetch linux-5.17-bundle # fetch from the bundle.
git checkout FETCH_HEAD # checkout from the bundle's HEAD
git tag -l # look at the available tags (all 5.17-related tags)