blob: 2fbee05a4b628445e4bac4dc5798bfdb7d563992 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# Scrub and pack Git repositories
# Iterate through given directories; default to the current one
for arg in "${@:-.}" ; do (
# Note the "exit" calls here in lieu of "continue" are deliberate; we're in
# a subshell, so leaving it will continue the loop.
# Enter either bare repository or .git subdir
case $arg in
*.git)
cd -- "$arg" || exit
;;
*)
cd -- "$arg"/.git || exit
;;
esac
# Check for bad references or other integrity/sanity problems
git fsck || exit
# Expire dangling references
git reflog expire --expire=now || exit
# Remove dangling references
git gc --prune=now --aggressive || exit
) done
|