]> git.phdru.name Git - git-scripts.git/commitdiff
Use `git count-objects` instead of `find`
authorOleg Broytman <phd@phdru.name>
Sun, 6 Nov 2016 11:47:46 +0000 (14:47 +0300)
committerOleg Broytman <phd@phdru.name>
Sun, 6 Nov 2016 11:47:46 +0000 (14:47 +0300)
Count loose objects in submodules.

ls-not-packed

index a674f59d80feb3adc22c17141b031f1b1cef920a..d01a9539f44931c51ccd45523b9757786a1a4e3f 100755 (executable)
@@ -1,6 +1,12 @@
 #! /bin/sh
 
+COUNT_OBJ_PRG="git count-objects -v | grep ^count: | cut -c 8-"
+export COUNT_OBJ_PRG
+
 exec "`dirname \"$0\"`"/do-all \
-   'test \
-      "`find \"$g\"/objects/ \"$g\"/refs/ \"$g\"/rr-cache/ \
-         ! -name HEAD -type f 2>/dev/null | wc -l`" -gt 3 && echo "$d"'
+   'cd "$d" && count_obj=`eval $COUNT_OBJ_PRG`; ' \
+   'if [ "$d" != "$g" ]; then' \
+      'for c in `eval git submodule foreach $COUNT_OBJ_PRG`;' \
+      'do count_obj=`expr $count_obj + $c`; done; ' \
+   'fi; ' \
+   'test $count_obj -gt 1 && echo "$d"' \