#!/bin/bash # you can run this over a whole repo with: # # for file in `find . -type f | sed 's/^\.\///' | egrep -v '^\.git\/.*$'` ; do revlist2humantest.bash $file ; done > /tmp/output # # be careful with files with spaces, though set -e repo=`git remote show origin | grep Fetch | cut -d' ' -f5` branch=`git branch | egrep '^\* .*' | cut -d' ' -f2` if [ "$#" -eq 1 ] ; then commit=`git log | head -1 | cut -d' ' -f2` path=$1 elif [ "$#" -eq 2 ] ; then commit=$1 path=$2 else echo "bad number of parameters" > /dev/stderr echo > /dev/stderr echo " try with: [commit] path" > /dev/stderr exit fi hashes=`git rev-list --remove-empty --reverse $commit -- $path` # some remotes have the .git, other don't, # repoDot makes sure all have repoDot="${repo%.git}.git" echo -e "\t&humanTest{\"${repoDot}\", \"${branch}\", \"${commit}\", \"${path}\", []string{" for i in $hashes ; do echo -e "\t\t\"${i}\"," done echo -e "\t}},"