#! /bin/sh
 
-prog_dir=`dirname "$0"`
-for d in `"$prog_dir"/ls-not-packed`
-do
-   echo "----- $d -----" && cd "$d" &&
-   git gc --aggressive &&
-   git repack -a -d -f --depth=20 --window=250 &&
-   git fsck --strict || exit 1
-done
+git gc --aggressive &&
+git repack -a -d -f --depth=20 --window=250 &&
+exec git fsck --strict
 
--- /dev/null
+#! /bin/sh
+
+prog_dir="`dirname \"$0\"`" &&
+
+"$prog_dir"/gc-and-repack && \
+exec git submodule foreach "$prog_dir"/gc-and-repack
 
--- /dev/null
+#! /bin/sh
+
+cd "`dirname \"$0\"`" &&
+prog_dir="`pwd`" &&
+
+for d in `"$prog_dir"/ls-not-packed`
+do
+   echo "----- $d -----" && cd "$d" &&
+   "$prog_dir"/gc-and-repack-recursive || exit 1
+done
 
 #! /bin/sh
 
-prog_dir=`dirname "$0"`
-for d in `"$prog_dir"/ls-not-packed`
-do
-   echo "----- $d -----" && cd "$d" &&
-   git gc --aggressive && git fsck --strict || exit 1
-done
+git gc --aggressive &&
+exec git fsck --strict
 
--- /dev/null
+#! /bin/sh
+
+prog_dir="`dirname \"$0\"`" &&
+
+"$prog_dir"/gc-not-packed && \
+exec git submodule foreach "$prog_dir"/gc-not-packed
 
--- /dev/null
+#! /bin/sh
+
+cd "`dirname \"$0\"`" &&
+prog_dir="`pwd`" &&
+
+for d in `"$prog_dir"/ls-not-packed`
+do
+   echo "----- $d -----" && cd "$d" &&
+   "$prog_dir"/gc-not-packed-recursive || exit 1
+done