#!/usr/bin/env bash # On Android, I have this issue... When too many repos are being # cloned, it fails. Then I have to go over them one by one and either # remove them or checkout the main branch after fetching. So this is a # possible workaround. In the future, elpaca-queue-limit should take # care of this on new devices I will use. checkout() { # The lock is left there even when nothing uses it... # Of course in general this is dangerous, nothing else # should be accessing the repo. rm -rf .git/index.lock if [[ ! -f $repo/.git/HEAD ]]; then cd - rm -rf $repo return 0 fi if git show-ref --verify --quiet refs/remotes/origin/main; then git checkout main elif git show-ref --verify --quiet refs/remotes/origin/master; then git checkout master else echo "ERROR: No main or master branch found in $repo" >&2 fi git reset --hard HEAD } for repo in ~/.emacs.d/stateful/elpaca/repos/*; do count=$(ls "$repo" | wc -l) if [[ $count -eq 0 ]]; then echo "Found, $repo" (cd "$repo" && git fetch --all && checkout) fi done