I had a similar idea for take-home tests for software interviews. Run a bash script to commit all changes in a repo every 5 seconds. The candidate then submits a tarball of the git repo.
#!/usr/bin/env bash
while true; do
git add -A
if ! git diff --cached --quiet; then
git commit -m "$(date --iso-8601=seconds)"
fi
sleep 5
done