I have a lot of git code repositories, and I usually gc (garbage collect) them
manually by running the
git gc command every now and then. Tasks like these
are prime candidates for automating with cron. Below is a cron entry and the
gcs my repositories. Hope you guys find it useful.
#!/bin/bash #author: Khaja Minhajuddin #email: email@example.com #path /home/minhajuddin/.cron/reboot.sh #description: script which is executed everytime computer starts #git gc repos REPO_DIRS=$(cat <<EOS $HOME/repos $HOME/repos/core EOS ) for repo_dir in $REPO_DIRS do echo "checking for git repos in $repo_dir" for repo in $(ls $repo_dir) do cd $repo_dir/$repo if [[ -d .git ]] then echo "garbage collecting $repo" git gc fi done done
the crontab entry
$ crontab -e #add the line below into the editor and save it @reboot $HOME/.cron/reboot.sh
Bonus tip: If you have a gitosis server, put the following script at
perform the above step for your git user.
the gitosis git user script
#!/bin/bash for repo in $(ls ~/repositories) do cd ~/repositories/$repo echo "garbage collecting $repo" git gc done