Copy every repo to a temp directory; this is very slow but prevents
``git status`` from touching real files.
--- /dev/null
+#! /bin/sh
+
+cd "`dirname \"$0\"`" && PROG_DIR="`pwd`" &&
+cd "$HOME"/tmp && rm -rf ls-dirty-carefully.tmp &&
+
+LSTMP="$HOME"/tmp/ls-dirty-carefully.tmp \
+"$PROG_DIR"/do-all \
+ 'test "$g" = "$d/.git" || continue;' \
+ 'rsync -aW --protocol=28 "$d" "$LSTMP" && cd "$LSTMP/$b" &&' \
+ 'test -n "`git status -s`" && echo "$d"' &&
+
+cd "$HOME"/tmp && exec rm -rf ls-dirty-carefully.tmp
--- /dev/null
+#! /bin/sh
+
+cd "`dirname \"$0\"`" && PROG_DIR="`pwd`" &&
+cd "$HOME"/tmp && rm -rf status-dirty-carefully.tmp &&
+
+LSTMP="$HOME"/tmp/status-dirty-carefully.tmp \
+"$PROG_DIR"/do-all \
+ 'test "$g" = "$d/.git" || continue;' \
+ 'rsync -aW --protocol=28 "$d" "$LSTMP" && cd "$LSTMP/$b" &&' \
+ 'test -n "`git status -s`" && echo "----- $d -----" &&' \
+ 'git status --branch' &&
+
+cd "$HOME"/tmp && exec rm -rf status-dirty-carefully.tmp