#!/bin/bash # Executes given command on all commits from current one to given one. set -e print_help() { echo "Executes given command for each commit. In default it executes" echo "for 10 previous commands." echo echo "Usage: project-test [OPTION...] [--] COMMAND" echo " -r,--ref [REF]" echo " Git reference to go to" echo " -c,--count [COUNT]" echo " Tests given count of references back from current one." } while [ -n "$1" ]; do case $1 in -r|--ref) shift REF=$1 ;; -c|--count) shift REF=HEAD~$1 ;; --) shift break ;; *) break ;; esac shift done [ -n "$REF" ] || REF=HEAD~10 while read -r rev; do git checkout "$rev" git submodule update eval "$@" done < <(git rev-list "$REF"..HEAD)